這裏在下面的例子中,我創建了哈希集,其中我添加了三個字符串值 s1,s2,s3,儘管它顯示了我的哈希集1的大小。爲什麼?Hashset大小問題
public static void main(String args[])
{
String s1="abc";
String s2=new String("abc");
String s3="abc";
Set setdemo=new HashSet();
setdemo.add(s1);
setdemo.add(s2);
setdemo.add(s3);
System.out.println("s1 hashcode -:"+ System.identityHashCode(s1));
System.out.println("s2 hashcode -:"+ System.identityHashCode(s2));
System.out.println("s3 hashcode -:"+ System.identityHashCode(s3));
System.out.println("Set size is -:"+setdemo.size());
}
輸出:
s1 hashcode -:17523401
s2 hashcode -:8567361
s3 hashcode -:17523401
Set size is -:1
通過重寫的equals()方法測試字符串相等性。該方法考慮了String的內容。這就是爲什麼當s1!= s2時,s2不在集合中。 s1.equals(s2)返回true。 – Thihara 2013-03-18 10:07:42