下面是我试过的一段代码;也给出了输出。
我的问题是:我在 setter 中HistoryTeardownDetails
为两个对象htd1
和设置了相同的 String 值htd2
,因此在 Hashset 中应该只允许其中一个对象(如 String 实现的情况)。
谁能帮助我了解如何使用哈希码的概念消除哈希集或任何集合中的重复项?
public class HashSetTry {
public static void main(String[]args){
HistoryTeardownDetails htd1=new HistoryTeardownDetails();
htd1.setProcess("ashwin");
HistoryTeardownDetails htd2=new HistoryTeardownDetails();
htd2.setProcess("ashwin");
HashSet<HistoryTeardownDetails> hashSet1=new HashSet<HistoryTeardownDetails>();
System.out.println("First --> "+hashSet1);
hashSet1.add(htd1);
System.out.println("Second --> "+hashSet1);
hashSet1.add(htd2);
System.out.println("Third --> "+hashSet1);
HashSet<String> hashSet2=new HashSet<String>();
System.out.println("First --> "+hashSet2);
hashSet2.add("abc");
System.out.println("Second --> "+hashSet2);
hashSet2.add("abc");
System.out.println("Third --> "+hashSet2);
HashSet<String> hashSet3=new HashSet<String>();
String abc=new String("sakthi");
System.out.println("First --> "+hashSet3);
hashSet3.add(abc);
String abcd=new String("sakthi");
System.out.println("Second --> "+hashSet3);
hashSet3.add(abcd);
System.out.println("Third --> "+hashSet3);
}
}
输出:
First --> []
Second --> [com.ford.wqr.object.HistoryTeardownDetails@20662066]
Third --> [com.ford.wqr.object.HistoryTeardownDetails@20662066, com.ford.wqr.object.HistoryTeardownDetails@20862086]
First --> []
Second --> [abc]
Third --> [abc]
First --> []
Second --> [sakthi]
Third --> [sakthi]