Heim  >  Artikel  >  Java  >  Was sind Java-Sammlungen?

Was sind Java-Sammlungen?

angryTom
angryTomOriginal
2019-11-14 10:10:403373Durchsuche

Was sind Java-Sammlungen?

Was sind Java-Sammlungen?

Die in der Java-API verwendeten Sammlungsklassen implementieren alle die Sammlungsschnittstelle Vererbungsstruktur von 🎜>CollectionCollectionCollection

Vektor

1) Die zugrunde liegende Datenstruktur ist ein Array, das schnell abgefragt, aber langsam hinzugefügt und gelöscht werden kann

2 ) Thread-sicher und geringe EffizienzWas sind Java-Sammlungen?

Eine auf Array basierende Liste kapselt tatsächlich einige Funktionen, die Array für unsere Verwendung nicht hat. Es kann nicht in die Einschränkungen von Array fallen. Es ist unmöglich, Array in der Leistung zu übertreffen. Daher sollten wir Array nach Möglichkeit häufiger verwenden. Ein weiterer sehr wichtiger Punkt ist, dass Vector „synchronisiert“ ist, was auch der einzige Unterschied zwischen Vector und ArrayList ist.

ArrayList

1). Die zugrunde liegende Datenstruktur ist ein Array, das schnell durchsucht und langsam hinzugefügt und gelöscht werden kann.

2) Thread unsicher und hocheffizient

Wie Vector ist es eine verknüpfte Liste, die auf Array basiert, aber der Unterschied besteht darin, dass ArrayList nicht synchronisiert ist. Daher ist es Vector hinsichtlich der Leistung überlegen, aber wenn es in einer Multithread-Umgebung ausgeführt wird, müssen Sie die Synchronisierung der Threads selbst verwalten.

LinkedList

1) Die zugrunde liegende Datenstruktur ist eine verknüpfte Liste, die langsam abzufragen und schnell hinzuzufügen und zu löschen ist

2) Thread-unsicher und hocheffizient

LinkedList unterscheidet sich von den beiden vorherigen Listen. Es basiert nicht auf Arrays und ist daher nicht durch die Array-Leistung eingeschränkt. Jeder Knoten (Knoten) enthält zwei Inhaltsaspekte:

1 Die Daten des Knotens selbst (Daten); Daher besteht beim Hinzufügen und Löschen von Aktionen zu einer LinkedList keine Notwendigkeit, große Datenmengen wie bei einer Array-basierten Liste zu verschieben. Dies kann erreicht werden, solange die relevanten Informationen von nextNode geändert werden. Dies ist der Vorteil von LinkedList.

Hashset-Sammlung:

1) Die zugrunde liegende Datenstruktur ist eine Hash-Tabelle, die auf zwei Methoden basiert: hascode() und equal()-Methode

2) Die Ausführungsreihenfolge der beiden Methoden:

Bestimmen Sie zunächst, ob die hascode()-Werte gleich sind

Ja: Führen Sie die Methode equal() weiter aus und sehen Sie sich deren Rückgabe an Wert

Ja wahr: Das bedeutet, dass die Elemente wiederholt werden und

nicht hinzugefügt werden. Falsch: Fügen Sie einfach das Element

direkt hinzu Sammlung

Treeset-Sammlung:

1) Die zugrunde liegende Datenstruktur ist ein Binärbaum

Zusammenfassung:

1. Alle Listen können nur eine einzige Tabelle enthalten, die aus Objekten unterschiedlichen Typs besteht, und nicht aus Schlüssel-Wert-Paaren. Zum Beispiel: [ tom,1,c ]; Alle Listen können die gleichen Elemente haben, zum Beispiel kann Vector [ tom,koo,koo ] haben; . Alle Listen können Nullelemente haben, wie zum Beispiel [tom,null,1];

4 ist für die Abfrage geeignet, während LinkedList (verknüpfte Liste) für die Hinzufügung geeignet ist und Löschvorgänge.

HashSet: Obwohl Set und List beide die Collection-Schnittstelle implementieren, sind ihre Implementierungsmethoden recht unterschiedlich. Die Liste basiert grundsätzlich auf Array. Aber Set wird auf Basis von HashMap implementiert. Dies ist der grundlegende Unterschied zwischen Set und List. Die Speichermethode von HashSet besteht darin, den Schlüssel in HashMap als entsprechendes Speicherelement von Set zu verwenden.

php Chinesische Website, eine große Anzahl kostenloser

Java-Einführungs-Tutorials, willkommen zum Online-Lernen!

Das obige ist der detaillierte Inhalt vonWas sind Java-Sammlungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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