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!