Ниже приведен фрагмент кода, который я пробовал; вывод также дан.Как сравнение значений выполняется в HashSet, HashMap и т. Д.
Мой вопрос: я устанавливаю то же значение типа String в сеттер HistoryTeardownDetails
для обоих объектов htd1
и htd2
, так что только один из объектов должны быть разрешены в HashSet (как и в случае реализации String) ,
Может ли кто-нибудь помочь мне в том, как дубликаты устраняются в Hashset или любой коллекции, используя концепцию хэш-кодов?
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 --> [[email protected]]
Third --> [[email protected], [email protected]]
First --> []
Second --> [abc]
Third --> [abc]
First --> []
Second --> [sakthi]
Third --> [sakthi]
-1 для перехода к коду вместо документации. Документация является гарантией и должна быть предпочтительнее кода, который представляет собой лишь одну реализацию. – raptortech97
@ raptortech97 ... интересный downvote ..хотя я думал, что показанный код будет более ясно иллюстрировать его – stinepike
+1 для кода вместо документации –