Das Java -Sammlungs -Toolkit befindet sich unter dem Java.util -Paket und enthält viele häufig verwendete Datenstrukturen, wie Arrays, verknüpfte Listen, Stapel, Warteschlangen, Sammlungen, Hash -Tabellen usw. Unter dem Rahmen der Lernkollektionen können Sie Java -Sammlungen unterteilt.
Wie aus der obigen Abbildung hervorgeht, sind die Sammlungsklassen hauptsächlich in zwei Kategorien unterteilt: Sammlung und Karte.
Die Sammlung ist eine stark abstrakte Schnittstelle für Sammlungen wie List und Set. Es enthält die grundlegenden Operationen dieser Sammlungen. Es ist hauptsächlich in zwei Teile unterteilt: Liste und Set.
Die Listenschnittstelle repräsentiert normalerweise eine Liste (Array, Warteschlange, verknüpfte Liste, Stapel usw.), und die darin enthaltenen Elemente können wiederholt werden. Gemeinsame Implementierungsklassen sind ArrayList und LinkedList, und es gibt auch Vektoren, die nicht häufig verwendet werden. Darüber hinaus implementiert LinkedList die Warteschlangenschnittstelle immer noch, sodass sie auch als Warteschlange verwendet werden kann.
Die festgelegte Schnittstelle stellt normalerweise eine Sammlung dar, in der Elemente nicht wiederholt werden dürfen (garantiert durch HashCode und gleiche Funktionen). Zu den häufig verwendeten Implementierungsklassen gehören Hashset und Treeset. Hashset wird durch HashMap in MAP implementiert und Treeset wird durch Treemap in MAP implementiert. Darüber hinaus implementiert Treeset die SortEdSet -Schnittstelle, so dass es sich um eine geordnete Menge handelt (Elemente im Satz müssen die vergleichbare Schnittstelle implementieren und die Funktion compartor überschreiben).
Wir sehen, dass die Abstract -Klassen AbstractCollection, AbstractList und AbstractSet die Sammlung, Listen- und Set -Schnittstellen implementieren. Dies sind die vielen Adapter -Designmuster, die im Java -Sammlungs -Framework verwendet werden. Diese abstrakten Klassen werden verwendet, um Schnittstellen zu implementieren und mehrere oder alle Methoden in der Schnittstelle in der abstrakten Klasse zu implementieren. Auf diese Weise müssen einige der folgenden Klassen nur die abstrakte Klasse direkt erben und die von ihnen benötigten Methoden implementieren, ohne alle abstrakten Methoden in der Schnittstelle zu implementieren.
MAP ist eine Zuordnungsschnittstelle, und jedes Element darin ist ein Schlüsselwertpaar. In ähnlicher Weise implementiert die abstrakte AbstractMap die meisten Funktionen in der Kartenschnittstelle über den Adaptermodus. Treemap, HashMap, WeaChashMap und andere Implementierungsklassen werden durch Erben von AbstractMap implementiert. Darüber hinaus implementiert der ungewöhnlich verwendete Hashtable die Kartenschnittstelle direkt, und IT und Vector sind Sammlungsklassen, die in JDK1.0 eingeführt werden.
Iterator ist ein Iterator, der Kollektionen durchquert (keine Karten durchqueren kann, nur zum Durchlaufen von Sammlungen). Die Implementierungsklassen der Sammlung implementieren die Funktion iterator (), die ein Iterator -Objekt in Traverse -Sammlungen zurückgibt, und Listiterator wird speziell zum Durchlaufen von Listen verwendet. Die Aufzählung wurde in JDK 1.0 eingeführt und hat die gleiche Funktion wie Iterator, aber seine Funktionen sind geringer als Iterator und können nur in Hashtable, Vector und Stapel verwendet werden.
Arrays und Sammlungen sind zwei Werkzeugklassen, mit denen Arrays und Sammlungen manipuliert werden. Beispielsweise wird die Arrays.copyof () -Methode in großen Mengen in ArrayList und Vector aufgerufen. Es gibt viele statische Methoden in Sammlungen, die die synchronisierte Version jeder Sammlungsklasse zurückgeben können, dh die thread-sffe-Version. Wenn Sie eine Thread-Safe-Kombinationsklasse verwenden möchten, wird die entsprechende Sammelklasse unter gleichzeitiger gleichzeitiger Paket bevorzugt.
Die obige umfassende Analyse des Quellcode der Java -Sammlung ist der gesamte Inhalt, der vom Editor geteilt wird. Ich hoffe, es kann Ihnen eine Referenz geben und ich hoffe, Sie können Wulin.com mehr unterstützen.