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 (add, remove 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.
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.
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.
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;TreeSet example:
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
import java.util.TreeSet;Referenzen:
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
Unterschied zwischen HashSet und TreeSet in Java
Hashset vs Treeset