小小问题请高手指教。。。
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是相同的元素呢???
------解决方案--------------------你太粗心了,把hashCode写成什么了,你看看:public   int   hushCode()改下就好了.
------解决方案--------------------jf
------解决方案--------------------((K164)o).s==this.s
...
------解决方案--------------------添加进HashSet的三个是k1 k2和s1,s2其一