import java.util.*;
public class K164 implements Comparable{
private String s;
public K164(String s){
this.s = s;
}
public static void main(String...abc){
HashSet<Object> hs = new HashSet<Object>();
K164 k1 = new K164("abc");
K164 k2 = new K164("abc");
String s1 = new String("abc");
String s2 = new String("abc");
hs.add(k1);
hs.add(k2);
hs.add(s1);
hs.add(s2);
System.out.println(hs.size());
System.out.println(k1.equals(k2));
}
public int compareTo(Object k){
return s.compareTo(((K164)k).s);
}
public int hushCode(){
return 1;
}
public boolean equals(Object o){
if((o instanceof K164)&&(((K164)o).s==this.s)){
return true;
}
else 
return false;
}
}结果打印的是:3我预期打印2。
有些疑惑明明对K164这个类合法重写了hushCode()和equals()方法为什么在添加进集合的时候 还是认为k1和k2是相同的元素呢???