Skip to content

Commit

Permalink
added hashCode override in State and tested semi-fully
Browse files Browse the repository at this point in the history
  • Loading branch information
Baldeep committed Nov 9, 2015
1 parent 0c46b5a commit 58d93e2
Show file tree
Hide file tree
Showing 50 changed files with 2,382 additions and 1,562 deletions.
Binary file modified .metadata/.mylyn/.tasks.xml.zip
Binary file not shown.
Binary file modified .metadata/.mylyn/tasks.xml.zip
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import java.util.HashMap;
import java.util.Map;

public class Main {

public static void main(String[] args) {
State s1 = new State("q1", "1");
State s2 = new State("q2", "2");
State s3 = new State("q1", "1");

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);

System.out.println("contains: " + map.containsKey(s3));
System.out.println("get: " + map.get(s3));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import java.util.HashMap;
import java.util.Map;

public class Main {

public static void main(String[] args) {
State s1 = new State("q1", "1");
State s2 = new State("q2", "2");
State s3 = new State("q1", "1");
State s4 = new State("q1", "1");
State s5 = new State("q1", "1");
State s6 = new State("q1", "1");

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);

System.out.println("s1 hash: " + s1.hashCode());
System.out.println("s3 hash: " + s3.hashCode());

System.out.println("contains: " + map.containsKey(s3));
System.out.println("get: " + map.get(s3));

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import java.util.HashMap;
import java.util.Map;

public class Main {

public static void main(String[] args) {
State s1 = new State("q1", "1");
State s2 = new State("q2", "1");
State s3 = new State("q1", "1");

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);

System.out.println(map.getKey(s3));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import java.util.HashMap;
import java.util.Map;

public class Main {

public static void main(String[] args) {
State s1 = new State("q1", "1");
State s2 = new State("q2", "2");
State s3 = new State("q1", "1");

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);

System.out.println("contains " + map.containsKey(s3));
System.out.println("get " + map.get(s3));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import java.util.HashMap;
import java.util.Map;

public class Main {

public static void main(String[] args) {
State s1 = new State("q1", "1");
State s2 = new State("q2", "2");
State s3 = new State("q1", "1");
State s4 = new State("q1", "1");
State s5 = new State("q1", "1");
State s6 = new State("q1", "1");

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);

System.out.println("contains: " + map.containsKey(s3));
System.out.println("get: " + map.get(s3));

System.out.println("contains 4: " + map.containsKey(s4));
System.out.println("get 4: " + map.get(s4));
System.out.println("contains 5: " + map.containsKey(s5));
System.out.println("get: " + map.get(s5));
System.out.println("contains 6: " + map.containsKey(s6));
System.out.println("get: " + map.get(s6));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@

public class State {
private String q;
private String input;

public State(String q, String input){
this.q = q;
this.input = input;
}

public String getState(){
return q;
}

public String getInput(){
return input;
}

@Override
public boolean equals(Object o){
if( o instanceof State){
return(this.q.equals(((State) o).getState()) && this.input.equals(((State) o).getInput()));
}
return false;
}

@Override public int hashCode() {
return (41 * (41 + getState().length()) + getInput().length());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import java.util.HashMap;
import java.util.Map;

public class Main {

public static void main(String[] args) {
State s1 = new State("q1", '1');
State s2 = new State("q2", '2');
State s3 = new State("q1", '1');
State s4 = new State("q1", '1');
State s5 = new State("q3", '1');
State s6 = new State("q1", '1');

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);
map.put(s4, 3);

System.out.println("s1 hash: " + s1.hashCode());
System.out.println("s3 hash: " + s3.hashCode());

System.out.println("s4 hash: " + s4.hashCode());
System.out.println("s5 hash: " + s5.hashCode());

System.out.println("contains: " + map.containsKey(s3));
System.out.println("get: " + map.get(s3));

System.out.println("contains: " + map.containsKey(s5));
System.out.println("get: " + map.get(s5));

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@

public class State {
private String q;
private String input;

public State(String q, String input){
this.q = q;
this.input = input;
}

public String getState(){
return q;
}

public String getInput(){
return input;
}

@Override
public boolean equals(Object o){
if( o instanceof State){
return(this.q.equals(((State) o).getState()) && this.input.equals(((State) o).getInput()));
}
return false;
}

@Override public int hashCode() {
return (41 * (41 + getState().length()) + 7 * getInput().length());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import java.util.HashMap;
import java.util.Map;

public class HashTest {

public static void main(String[] args) {
State s1 = new State("q1", '1');
State s2 = new State("q2", '2');
State s3 = new State("q1", '1');
State s4 = new State("q1", '1');
State s5 = new State("q3", '1');
State s6 = new State("q1", '1');

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);
map.put(s4, 3);

System.out.println("s1 hash: " + s1.hashCode());
System.out.println("s3 hash: " + s3.hashCode());

System.out.println("s4 hash: " + s4.hashCode());
System.out.println("s5 hash: " + s5.hashCode());

System.out.println("contains: " + map.containsKey(s3));
System.out.println("get: " + map.get(s3));

System.out.println("contains: " + map.containsKey(s5));
System.out.println("get: " + map.get(s5));

/*
* s1 = s4
*/
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import java.util.HashMap;
import java.util.Map;

public class Main {

public static void main(String[] args) {
State s1 = new State("q1", "1");
State s2 = new State("q2", "1");
State s3 = new State("q1", "1");

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);

System.out.println(map.get(s3));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import java.util.HashMap;
import java.util.Map;

public class HashTest {

public static void main(String[] args) {
State s1 = new State("q1", '1');
State s2 = new State("q2", '2');
State s3 = new State("q1", '1');
State s4 = new State("q1", '2');
State s5 = new State("q1", '2');
State s6 = new State("q1", '1');

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);
map.put(s4, 3);

System.out.println("s1 hash: " + s1.hashCode());
System.out.println("s3 hash: " + s3.hashCode());

System.out.println("s4 hash: " + s4.hashCode());
System.out.println("s5 hash: " + s5.hashCode());

System.out.println("contains: " + map.containsKey(s3));
System.out.println("get: " + map.get(s3));

System.out.println("contains: " + map.containsKey(s5));
System.out.println("get: " + map.get(s5));

/*
* s1 = s4 = (q1, 1), s5 = (q3, 1)
* s3 = true, 3, s5 = false
*
* s1 = (q1, 1), s4 = (q3, 1), s5 = (q3, 1)
* s3 = true, 1, s5 = true, 3
*/
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import java.util.HashMap;
import java.util.Map;

public class Main {

public static void main(String[] args) {
State s1 = new State("q1", '1');
State s2 = new State("q2", '2');
State s3 = new State("q1", '1');
State s4 = new State("q1", '1');
State s5 = new State("q1", '1');
State s6 = new State("q1", '1');

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);
map.put(s4, 3);

System.out.println("s1 hash: " + s1.hashCode());
System.out.println("s3 hash: " + s3.hashCode());

System.out.println("s4 hash: " + s4.hashCode());
System.out.println("s5 hash: " + s5.hashCode());

System.out.println("contains: " + map.containsKey(s3));
System.out.println("get: " + map.get(s3));

System.out.println("contains: " + map.containsKey(s5));
System.out.println("get: " + map.get(s5));

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

public class State {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import java.util.HashMap;
import java.util.Map;

public class HashTest {

public static void main(String[] args) {
State s1 = new State("q1", '1');
State s2 = new State("q2", '2');
State s3 = new State("q1", '1');
State s4 = new State("q1", '1');
State s5 = new State("q3", '1');
State s6 = new State("q1", '1');

Map<State, Integer> map = new HashMap<>();
map.put(s1, 1);
map.put(s2, 2);
map.put(s4, 3);

System.out.println("s1 hash: " + s1.hashCode());
System.out.println("s3 hash: " + s3.hashCode());

System.out.println("s4 hash: " + s4.hashCode());
System.out.println("s5 hash: " + s5.hashCode());

System.out.println("contains: " + map.containsKey(s3));
System.out.println("get: " + map.get(s3));

System.out.println("contains: " + map.containsKey(s5));
System.out.println("get: " + map.get(s5));

/*
*
*/
}

}
Loading

0 comments on commit 58d93e2

Please sign in to comment.