Java Collection Framework (ausführliche Erklärung)

Sammlung:
Sammlung, auch Container genannt, wird zum Speichern, Extrahieren und Löschen von Daten verwendet. Die vom JDK bereitgestellten Sammlungs-APIs sind im Paket java.util enthalten.

Sammlungszweige:
Zwei Hauptzweige des Sammlungsframeworks: Sammlungsschnittstelle und Kartenschnittstelle

1. Sammlungsschnittstelle:

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

1,Liste

Die Liste stellt eine geordnete und wiederholbare Sammlung dar, auf die direkt entsprechend dem Index der Elemente zugegriffen werden kann
:
Merkmale der Listensammlung
Die Elemente in der Sammlung dürfen
wiederholt werden. Die Elemente in der Sammlung sind in der richtigen Reihenfolge und in der Reihenfolge, in der sie jeweils sind Element eingefügt wird, ist die Reihenfolge jedes Elements
in der Sammlung. Kann über den Index aufgerufen oder festgelegt werden

Häufig verwendete Implementierungsklassen der List- Schnittstelle sind: ArrayList, LinkedList, Vector

Anordnungsliste

ArrayList ist ein dynamisches Array und unsere am häufigsten verwendete Sammlung. Es ist eine typische Implementierung der List-Klasse.

Es ermöglicht das Einfügen jedes Elements, das den Regeln entspricht, sogar null. Jede ArrayList hat eine Anfangskapazität (10), die die Größe des Arrays darstellt.

Wenn die Anzahl der Elemente im Container weiter zunimmt, nimmt auch die Größe des Containers zu. Jedes Mal, wenn dem Container ein Element hinzugefügt wird, wird eine Kapazitätsprüfung durchgeführt. Wenn es kurz vor dem Überlaufen steht, wird ein Erweiterungsvorgang durchgeführt.

Wenn wir daher die Anzahl der einzufügenden Elemente kennen, ist es am besten, einen anfänglichen Kapazitätswert anzugeben, um übermäßige Erweiterungsvorgänge zu vermeiden, die Zeit und Effizienz verschwenden.

ArrayList eignet sich gut für den Direktzugriff, während ArrayList asynchron ist
:

Vektor

Ähnlich wie ArrayList, aber Vector ist synchronisiert und seine Funktionsweise ist fast die gleiche wie ArrayList.

LinkedList

LinkedList wird mithilfe einer bidirektionalen zirkulären verknüpften Liste implementiert. LinkedList ist eine weitere Implementierung der List-Schnittstelle. Zusätzlich zum Zugriff auf Sammlungselemente gemäß Indizes implementiert LinkedList auch die Deque-Schnittstelle, die als doppelendige Warteschlange verwendet werden kann. Das Das heißt, es kann entweder als „Stapel“ oder als Warteschlange verwendet werden.

2, einstellen

Set stellt eine ungeordnete, nicht wiederholbare Sammlung dar und kann nur basierend auf dem Element selbst aufgerufen werden.

Set erweitert die Collection-Schnittstelle und ist eine ungeordnete Sammlung, die das Speichern doppelter Elemente nicht zulässt.

Häufig verwendete Implementierungsklassen der Set-Schnittstelle sind: HashSet, LinkedHashSet und TreeSet
Fügen Sie hier eine Bildbeschreibung ein

3, Warteschlange

Warteschlange ist eine Sammlung von Warteschlangen

Warteschlange ist eine wichtige Art von Datenstruktur. Sie unterstützt FIFO, Tail-Addition und Head-Deletion (die Elemente der erweiterten Warteschlange werden zuerst aus der Warteschlange entfernt), was der Warteschlange in unserem Leben ähnelt.
Fügen Sie hier eine Bildbeschreibung ein

2. Kartenschnittstelle:

Fügen Sie hier eine Bildbeschreibung ein

1.HashMap

Die Map-Schnittstelle basiert auf der Implementierung von Hash-Tabellen und ist der am häufigsten verwendete Datentyp für die Verarbeitung von Schlüssel-Wert-Paaren.

Es speichert Daten entsprechend dem HashCode-Wert des Schlüssels. In den meisten Fällen kann sein Wert direkt lokalisiert werden. Es zeichnet sich durch schnelle Zugriffsgeschwindigkeit, unsichere Durchlaufreihenfolge und Thread-Unsicherheit aus und ermöglicht, dass höchstens ein Schlüssel null und mehrere Werte sein kann ​​null sein.

Sie können die synchronisierteMap-Methode von Collections verwenden, um HashMap threadsicher zu machen, oder die ConcurrentHashMap-Klasse verwenden.

2.Hashtabelle

Hashtable und HashMap weisen viele Ähnlichkeiten in Bezug auf Speicherstruktur und Implementierung auf. Der Unterschied besteht darin, dass es von der Dictionary-Klasse geerbt wird und threadsicher ist. Darüber hinaus lässt Hashtable nicht zu, dass Schlüssel und Wert null sind, und die Parallelität ist vorhanden nicht so gut wie ConcurrentHashMap.

Es wird nicht empfohlen, Hashtable in neuem Code zu verwenden. Es kann durch HashMap ersetzt werden, wenn keine Thread-Sicherheit erforderlich ist. ConcurrentHashMap kann verwendet werden, wenn Thread-Sicherheit erforderlich ist.

3.LinkedHashMap

LinkedHashMap erbt HashMap und ist eine Hash-Tabelle und eine verknüpfte Listenimplementierung der Map-Schnittstelle. Es verwaltet eine doppelt verknüpfte Liste. Diese verknüpfte Liste definiert die Iterationsreihenfolge, die Einfügungsreihenfolge oder Zugriffsreihenfolge sein kann.

4.Baumkarte

TreeMap implementiert die SortMap-Schnittstelle und kann die gespeicherten Datensätze nach Schlüsseln sortieren. Standardmäßig wird nach Schlüsselwerten in aufsteigender Reihenfolge (natürliche Reihenfolge) sortiert. Sie können auch einen Sortierkomparator angeben. Wenn Sie einen Iterator zum Durchlaufen einer TreeMap verwenden , die erhaltenen Datensätze werden sortiert. .

5. Kartenzusammenfassung

Fügen Sie hier eine Bildbeschreibung ein
:
ok. Das Obige ist der gesamte Inhalt des Sammlungsframeworks

Supongo que te gusta

Origin blog.csdn.net/sweetser/article/details/134585167
Recomendado
Clasificación