package Hash;
public class Demo{
int value;
int id;
public Demo(int _id,int _value){
this.id=_id;
this.value=_value;
}
public String toString(){
return "value="+value;
}
public boolean equals(Object o){
Demo d=(Demo)o;
return (d.value==value)?true:false;
}
public int hashCode(){
return id;
}
}
-----------------
package Hash;
import java.util.HashSet;
public class HashCodeTest {
/**
* @param args
*/
public static void main(String[] args) {
HashSet<Demo> set=new HashSet<Demo>();
for(int i=0;i<=3;i++){
set.add(new Demo(i,i));
}
System.out.println(set);
set.add(new Demo(1,1));
System.out.println(set);
System.out.println(set.contains(new Demo(0,0)));
System.out.println(set.add(new Demo(1,1)));
System.out.println(set.add(new Demo(4,4)));
System.out.println(set);
}
}
-----输出结果-------
[value=2, value=1, value=3, value=0]
[value=2, value=1, value=3, value=0]
true
false
true
[value=2, value=4, value=1, value=3, value=0]
public class Demo{
int value;
int id;
public Demo(int _id,int _value){
this.id=_id;
this.value=_value;
}
public String toString(){
return "value="+value;
}
public boolean equals(Object o){
Demo d=(Demo)o;
return (d.value==value)?true:false;
}
public int hashCode(){
return id;
}
}
-----------------
package Hash;
import java.util.HashSet;
public class HashCodeTest {
/**
* @param args
*/
public static void main(String[] args) {
HashSet<Demo> set=new HashSet<Demo>();
for(int i=0;i<=3;i++){
set.add(new Demo(i,i));
}
System.out.println(set);
set.add(new Demo(1,1));
System.out.println(set);
System.out.println(set.contains(new Demo(0,0)));
System.out.println(set.add(new Demo(1,1)));
System.out.println(set.add(new Demo(4,4)));
System.out.println(set);
}
}
-----输出结果-------
[value=2, value=1, value=3, value=0]
[value=2, value=1, value=3, value=0]
true
false
true
[value=2, value=4, value=1, value=3, value=0]