Bevor wir uns mit den Unterschieden befassen, schauen wir uns kurz an, was HashSet und TreeSet sind.
Ein HashSet ist eine Sammlung, die eine Hash-Tabelle zur Speicherung verwendet. Es implementiert die Set-Schnittstelle, was bedeutet, dass es keine doppelten Elemente zulässt. Die Elemente sind ungeordnet und unsortiert, wodurch HashSet für Szenarien geeignet ist, in denen Sie schnell suchen, einfügen und löschen müssen.
Ein TreeSet ist eine Sammlung, die die NavigableSet-Schnittstelle implementiert. Für die Speicherung wird ein Rot-Schwarz-Baum verwendet, was bedeutet, dass die Elemente sortiert und geordnet gespeichert werden. TreeSet lässt ebenfalls keine doppelten Elemente zu, ist jedoch ideal für Situationen, in denen Sie eine natürliche Reihenfolge der Elemente beibehalten müssen.
HashSet : Verwendet intern eine Hash-Tabelle. Der Hash-Code jedes Elements wird verwendet, um seinen Speicherort zu bestimmen. Wenn zwei Elemente denselben Hash-Code haben, wird eine Technik namens Verkettung oder Sondierung verwendet, um Kollisionen zu behandeln.
Beispielcode:
SethashSet = new HashSet(); hashSet.add("Apple"); hashSet.add("Banana"); hashSet.add("Mango");
TreeSet : Verwendet intern einen Rot-Schwarz-Baum. Jedes Element wird entsprechend seiner natürlichen Reihenfolge oder einem bereitgestellten Komparator platziert, um sicherzustellen, dass der Baum im Gleichgewicht bleibt.
Beispielcode:
SettreeSet = new TreeSet(); treeSet.add("Apple"); treeSet.add("Banana"); treeSet.add("Mango");
Sowohl HashSet als auch TreeSet erlauben keine doppelten Elemente. Die Methode zur Erkennung von Duplikaten unterscheidet sich jedoch. HashSet verwendet die Methoden hashCode () und equals (), während TreeSet die Methoden compareTo () oder einen Comparator[ verwendet &&&].
2.7 SpeichernutzungHashSet vs. LinkedHashSet: Während HashSet keine Reihenfolge garantiert, behält LinkedHashSet die Einfügungsreihenfolge bei. TreeSet hingegen sortiert Elemente auf natürliche Weise oder durch einen benutzerdefinierten Komparator.
2.9 Anwendungsfälle
// HashSet Example Set3. FazithashSet = new HashSet(); hashSet.add("Zebra"); hashSet.add("Apple"); hashSet.add("Mango"); System.out.println("HashSet: " hashSet); // Output may be unordered, e.g., [Apple, Mango, Zebra] // TreeSet Example Set treeSet = new TreeSet(); treeSet.add("Zebra"); treeSet.add("Apple"); treeSet.add("Mango"); System.out.println("TreeSet: " treeSet); // Output will be sorted, e.g., [Apple, Mango, Zebra]
Weitere Beiträge finden Sie unter: Die 10 wichtigsten Unterschiede zwischen HashSet und TreeSet in Java
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3