Heim  >  Artikel  >  Java  >  Einführung in die Beziehung und den Unterschied zwischen Set und List in Java

Einführung in die Beziehung und den Unterschied zwischen Set und List in Java

高洛峰
高洛峰Original
2017-01-22 15:25:031868Durchsuche

Beide Schnittstellen werden von Collection geerbt.

List (Schnittstelle)

Reihenfolge ist das wichtigste Merkmal von List, das sicherstellt, dass die spezifische Reihenfolge der Elemente beibehalten wird
—. – ArrayList Ermöglicht schnellen Direktzugriff auf Elemente. Der Aufwand für das Einfügen und Entfernen aus der Mitte der Liste ist nicht groß removeLast(). .Diese Methoden ermöglichen die Verwendung von LinkedList als Stapel/Warteschlange/bidirektionale Warteschlange.

Set (Schnittstelle)

Jedes in Set gespeicherte Element muss eindeutig sein und die Reihenfolge von Es ist nicht garantiert, dass die Elemente beibehalten werden. Das Objekt muss die Methode equal()

--HashSet definieren, ein Set, das für die schnelle Suche konzipiert ist, und das im HashSet gespeicherte Objekt muss hashCode() definieren --TreeSet, ein Set, das die Reihenfolge schützt, kann aus dem Set extrahiert werden, indem die geordnete Sequenz
verwendet wird. --LinkedHashSet Hat die Abfragegeschwindigkeit von HashSet und verwendet intern eine verknüpfte Liste, um die Reihenfolge der Elemente beizubehalten 🎜>
Die Speichermethoden sind unterschiedlich:

TreeSet verwendet Rot und Schwarz. Die Elemente werden nach der Baumstruktur sortiert.

HashSet verwendet eine Hash-Funktion, die speziell für schnelle Abfragen entwickelt wurde .

LinkedHashSet verwendet intern Hashing, um Abfragen zu beschleunigen, während verknüpfte Listen verwendet werden, um die Reihenfolge der Elemente beizubehalten.


Bei Verwendung von HashSet/TreeSet muss equal() für die Klasse definiert werden; für HashSet. Wenn equal() als Programmierstil überschrieben wird, sollte auch hashCode() überschrieben werden.

Weitere verwandte Artikel zur Beziehung und zum Unterschied zwischen Set und List in Java finden Sie unter PHP chinesische Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn