In dit artikel gaan we de verschillen bespreken tussen HashSet
en TreeSet
.
HashSet versus TreeSet
1) HashSet levert betere prestaties (sneller) dan TreeSet voor de bewerkingen zoals toevoegen, verwijderen, bevatten, grootte enz. HashSet biedt constante tijdkosten terwijl TreeSet log (n) tijdkosten voor dergelijke bewerkingen biedt.
2) HashSet handhaaft geen volgorde van elementen terwijl TreeSet-elementen standaard worden gesorteerd in oplopende volgorde.
Overeenkomsten :
1) Zowel HashSet als TreeSet bevatten geen dubbele elementen, wat betekent dat beide dubbel gratis zijn.
2) Als u een gesorteerde set wilt, is het beter om elementen aan HashSet toe te voegen en deze vervolgens in TreeSet te converteren in plaats van een TreeSet te maken en er elementen aan toe te voegen.
3) Beide klassen zijn niet-gesynchroniseerd, wat betekent dat ze niet thread-safe zijn en expliciet moeten worden gesynchroniseerd wanneer thread-safe operaties nodig zijn.
Voorbeelden:
HashSet-voorbeeld
java.util.HashSet importeren; class HashSetDemo {public static void main (String [] args) { // Maak een HashSet HashSet <String> hset = new HashSet <String> (); // elementen toevoegen aan HashSet hset.add ( "Abhijeet"); hset.add ( "Ram"); hset.add ( "Kevin"); hset.add ( "Singh"); hset.add ( "Rick"); // Duplicaat verwijderd hset.add ( "Ram");// HashSet-elementen weergeven System.out.println ("HashSet bevat:"); voor (String temp: hset) { System.out.println (temp); } } }
Output:
HashSet bevat: Rick Singh RAM Kevin Abhijeet
TreeSet-voorbeeld
java.util.TreeSet importeren; class TreeSetDemo {public static void main (String [] args) { // Maak een TreeSet TreeSet <String> tset = new TreeSet <String> (); // elementen toevoegen aan TreeSet tset.add ( "Abhijeet"); tset.add ( "Ram"); tset.add ( "Kevin"); tset.add ( "Singh"); tset.add ( "Rick"); // Duplicaat verwijderd tset.add ( "Ram"); // TreeSet-elementen weergeven System.out.println ("TreeSet bevat:"); voor (String temp: tset) { System.out.println (temp); } } }
Uitvoer: elementen worden in oplopende volgorde gesorteerd.
TreeSet bevat: Abhijeet Kevin RAM Rick Singh
Nog een be>
Hallo Chaitanya
Ik denk niet dat je tweede punt voor gelijkenis juist is. Ik heb de Hashset gemaakt en er enkele items aan toegevoegd en deze vervolgens omgezet in Treeset. Het resultaat was een ongesorteerde lijst. Hieronder staat de code laat het me weten als ik het mis heb
public static void main (String [] args) {
// Maak een HashSet
HashSet hset = new HashSet ();
// elementen toevoegen aan HashSet
hset.add ( “Steve”);
hset.add ( “Matt”);
hset.add ( “Govinda”);
hset.add ( “John”);
hset.add ( “Tommy”);
// HashSet-elementen weergeven
System.out.println ("HashSet bevat:" + hset);
// Een lijst met boomsetelementen maken
TreeSet list = new TreeSet (hset);
// ArrayList-elementen weergeven
System.out.println (“TreeSet bevat:“ + lijst);
}
DE UITGANG IS
HashSet bevat: [Tommy, Matt, Steve, Govinda, John]
TreeSet bevat: [Govinda, John, Matt, Steve, Tommy]
Excuses voor de verwarring voor mijn bericht. Ik begreep nu dat treeset de gegevens in oplopende volgorde sorteert.
2) Als u een gesorteerde set wilt, is het beter om elementen aan HashSet toe te voegen en deze vervolgens in TreeSet te converteren in plaats van een TreeSet te maken en er elementen aan toe te voegen.
waarom?
Omdat HashSet betere prestaties (sneller) geeft dan TreeSet voor de bewerkingen zoals toevoegen, verwijderen, bevatten, grootte, enz. HashSet biedt constante tijdkosten terwijl TreeSet log (n) tijdkosten biedt voor dergelijke bewerkingen.