Performance-Vergleich zwischen TreeSet und HashSet in Java

In diesem Tutorial werden alle Unterschiede und Gemeinsamkeiten zwischen   TreeSet und HashSet. In der Tat ist dies eine sehr beliebte Frage in Java-Sammlungen, wie z. B. ArrayList vs Vector und HashTable vs HashMap. Der wahrscheinlich wichtigste Unterschied ist die Leistung.

TreeSet vs HashSet

1)  HashSet bietet eine konsistente Leistungszeit für grundlegende Operationen wie: hinzufügen, entfernen, enthält und Größe. HashSet ist schneller als TreeSet und es ist eine sehr gute Wahl, wenn Sie die Elemente nicht sortieren müssen, da HashSet hat kein Sortiersystem. TreeSet  Garantierte Log(n)-Zeit für grundlegende Operationen (addremove  et  enthält).

2)  HashSet  garantiert nicht, dass Elemente sortiert werden. TreeSet stellt sicher, dass Elemente in aufsteigender Reihenfolge sortiert oder durch die interface Comparable oder was auch immer Sie im Konstruktor angeben, der durch die Schnittstelle Comparator von Java.

3) Die Traversal-Performance hängt von der anfänglichen Kapazität und dem Lastfaktor von HashSet. TreeSet hat keine Parameter, die die Leistung des Kurses beeinflussen.

4) TreeSet bietet Methoden, die in HashSet :  first(), last(), headSet() und tailSet().

5) HashSet verwendet die Methode  equals() um zwei Objekte zu vergleichen und doppelte Objekte zu erkennen. TreeSet verwendet die compareTo(). equals() gibt true zurück, wenn beide Objekte gleich sind und compareTo() sollte null zurückgeben.

Die Ähnlichkeiten zwischen TreeSet und HashSet in Java

HashSet  und  TreeSet  haben viele Dinge, die gemeinsam sind, werfen wir einen Blick darauf:

1) Beide implementieren die Schnittstelle java.util.Set, CE  Das bedeutet, dass sie das Einfügen doppelter Elemente nicht zulassen.

2) Die beiden Implementierungen sind nicht synchronisiert. Sie können sie synchronisieren, indem Sie die Collections.synchronizedSet().

3) Wenn Sie einen sortierten Satz wünschen, ist es schneller, Elemente zu HashSet und konvertieren sie dann in TreeSet  als eine TreeSet und fügen Sie Elemente hinzu.

Letztendlich können wir sagen, dass die Wahl der Verwendung ganz von Ihren Bedürfnissen abhängt.

Beispiel für HashSet:

import java.util.HashSet; 

public class example {

public static void main(String[] args) {

HashSet< String> hset = neues HashSet< String> ();

hset.add("1");
hset.add("3");
hset.add("2");
hset.add("5");

for(String s: hset)
System.out.println(s);
}
}

Ergebnis:
3
2
1
5
TreeSet example:

import java.util.TreeSet; 

public class example {

public static void main(String[] args) {

TreeSet< String> tset = neues TreeSet< String> ();

tset.add("1");
tset.add("3");
tset.add("2");
tset.add("5");

for(String s: tset)
System.out.println(s);
}
}

Ergebnis:
1
2
3
5
Referenzen:
Unterschied zwischen HashSet und TreeSet in Java
Hashset vs Treeset