Heim  >  Artikel  >  Java  >  Was ist der Unterschied zwischen Sammlungen in Java?

Was ist der Unterschied zwischen Sammlungen in Java?

青灯夜游
青灯夜游Original
2019-11-18 17:49:074850Durchsuche

Was ist der Unterschied zwischen Sammlungen in Java?

Was ist der Unterschied zwischen Sätzen in Java?

In Java sind Sammlungen hauptsächlich in drei Typen unterteilt: Liste, Set und Map. Liste und Set erben von Sammlung, Map jedoch nicht.

Der Unterschied zwischen Liste und Satz: Die Elemente in der Liste haben eine Speicherreihenfolge und können wiederholte Elemente speichern. Die Abrufeffizienz ist jedoch niedrig, die Einfügungs- und Löscheffizienz ist jedoch gering Wiederholte Elemente können nicht gespeichert werden. Es ersetzt die zuvor wiederholten Elemente, was zu einer geringen Abrufeffizienz und einer hohen Einfüge- und Löscheffizienz führt. (Der Speicherort des Sets wird durch seinen HashCode-Code bestimmt, daher muss das von ihm gespeicherte Objekt über die Methode equal() verfügen, und Set Traversal kann nur Iteration verwenden, da es keinen Index hat.)

1 , the am häufigsten verwendete Sammlung: ArrayList

Eigenschaften: Die Speicherorte der Elemente in der ArrayList-Sammlung sind kontinuierlich, sodass die Abfrage schneller ist, aber das Ausführen von Einfüge- und Löschvorgängen schwieriger ist führt dazu, dass andere Elemente ihren Standort ändern.

Hinweis: In der Liste werden Verweise auf Objekte gespeichert, nicht auf die Objekte selbst. Wenn Sie sich darüber nicht im Klaren sind, gibt es hier eine Gefahr:

Manche Leute schreiben Code wie diesen, um Optimierungscode und Speicher für virtuelle Maschinen zu sparen:

List<List<String>> list=new ArrayList<>();
List<String> list2=new ArrayList<>();
for(int i=0;i<10;i++){
    list2.add(""+i);    
    list.add(list2);
    list2.clear();
}

Geschrieben Auf diese Weise kann ein Objekt zwar wiederverwendet werden, jedoch werden beim Aufruf von list2.clear() auch list2 in der Liste gelöscht, sodass das Endergebnis nur eine Reihe leerer Sammlungen sein kann .

2. Die entgegengesetzte Sammlung zur am häufigsten verwendeten Sammlung: LinkedList

LinkedList und ArrayList ergänzen sich, daher sind die Vorteile von ArrayList die Nachteile von LinkedList Nachteile von ArrayList sind Vorteile von LinkedList.

Funktionen: Die Position von Elementen in LinkedList ist willkürlich, daher sind Einfüge- und Löschvorgänge effizienter und die Abfrageeffizienz geringer.

3. Mengen, die zu allgemeinen Mengen entgegengesetzt sind: Vektor

Warum heißt es, zu allgemeinen Mengen entgegengesetzt zu sein? Da es sich um ein altes dynamisches Array handelt, werden viele Methoden mit synchonized geändert, sodass es threadsicher ist, während allgemeine Sammlungen threadunsicher sind.

Funktionen: Der gleichzeitige Zugriff mehrerer Threads führt nicht zu unsicheren Ergebnissen, die Effizienz ist jedoch relativ gering. Sie können es verwenden, wenn Sie die Thread-Sicherheit berücksichtigen möchten.

Die am häufigsten verwendete Sammlung in Set: HashSet

Wenn ich Set-Sammlungen verwende, verwende ich fast immer HashSet. HashSet wird mithilfe einer Hash-Tabelle implementiert Elemente in der Menge sind ungeordnet und können Nullwerte haben, es dürfen jedoch keine doppelten Elemente vorhanden sein.

Eigenschaften: Da dieselben Elemente denselben HashCode haben, kann es keine doppelten Elemente geben

5. Der am zweithäufigsten verwendete Satz im Set: TreeSet

TreeSet ist ein Satz, der mithilfe einer binären Baumstruktur implementiert wird

Funktionen: Die Elemente im Satz sind in der richtigen Reihenfolge, Null ist nicht zulässig und doppelte Elemente sind nicht zulässig.

6. Die am zweithäufigsten verwendete Sammlung: HashMap

Wir stoßen häufig auf Szenarien, in denen die Speicherung von Schlüssel-Wert-Paaren erforderlich ist, und HashMap ist der am häufigsten verwendete Schlüssel. Wert für die gespeicherte Sammlung.

Funktionen: HashMap erlaubt leere Schlüsselwerte und ist nicht threadsicher, sodass das Einfügen, Löschen und Positionieren von Elementen schneller erfolgt.

Einige weniger häufig verwendete Kartensammlungen: TreeMap, HashTable

TreeMap wird basierend auf rot-schwarzen Bäumen implementiert und eignet sich zur Bestimmung der Reihenfolge entsprechend der natürlichen Reihenfolge. Traverse-Taste.

HashTable wird basierend auf HashCode implementiert, ist jedoch threadsicher, daher weniger effizient als HashMap und Nullwerte sind nicht zulässig.

Empfohlenes Tutorial: Java-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Sammlungen in Java?. 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