Heim  >  Artikel  >  Java  >  Grafische Details zum Vergleich von ArrayList und LinkedList in Java

Grafische Details zum Vergleich von ArrayList und LinkedList in Java

Y2J
Y2JOriginal
2017-05-03 14:47:031666Durchsuche

Dieser Artikel vergleicht hauptsächlich ArrayList und LinkedList in Java anhand von Beispielen. Freunde in Not können sich darauf beziehen

ArrayList und LinkedList sind beide gängige Implementierungsmethoden der Collection-Schnittstelle und verwenden unterschiedliche Speicherstrategien sich an die Bedürfnisse verschiedener Situationen anpassen.

Implementierungsmethode

ArrayList verwendet intern Sammlungen zum Speichern von Daten

Das Einzige, was beachtet werden muss ist das für Die Verarbeitungslogik, wenn die Kapazität den Schwellenwert überschreitet, ist die maximale Kapazität Integer.Max_Value. Wenn die maximale Kapazität überschritten wird, wird eine Speicherüberlaufausnahme ausgelöst 🎜>

Der Erweiterungsmechanismus ist unten dargestellt

Die erweiterte Kapazität beträgt das 1,5-fache der ursprünglichen Kapazität

Die Implementierung von LinkedList

Interne Verwendung der doppelt verknüpften Liste Node zum Speichern von Daten. Aufgrund der Verwendung einer doppelt verknüpften Liste kann LinkedList auch als Stapel und Warteschlange verwendet werden, die Effizienz ist jedoch relativ gering. Effizienzimplementierung von ArrayDeqeue.

Leistungsvergleich

In Bezug auf die Schwanzeinfügungseffizienz gibt es keinen großen Unterschied zwischen den beiden, aber LinkedList muss beibehalten werden Bei einer doppelt verknüpften Listenbeziehung ist die gesamte Speichereffizienz etwas schlechter als bei ArrayList.

ArrayList verwendet die Zeit hauptsächlich für die Kapazitätserweiterung und Datenmigration, wenn wir die Kapazität auf einmal initialisieren , es sollte in Ordnung sein. Es gibt Raum für Verbesserungen. Es gibt erschreckende 50 % Verbesserungspotenzial

Der Vorteil von Linked ist die Effizienz des Kopfeinsetzens . Sie müssen nur das Kopfelement ändern, aber das Array muss immer noch nachfolgende Daten verschieben, und die Effizienz ist weitaus geringer als bei LinkedList

Für get und Mengenoperationen, die binäre Suche wird innerhalb der verknüpften Liste durchgeführt. Arrays können über Indizes direkt auf Elemente zugreifen, sodass die Effizienz höher ist als bei LinkedList

Basierend auf dem oben Gesagten Im Vergleich dazu können wir grundsätzlich feststellen, dass, wenn

nur gespeichert wird, bei einfacher Iteration von Daten im Allgemeinen Sammlungen am effizientesten sind.
Wenn häufige Änderungen an Elementen erforderlich sind, LinkedList

sollte verwendet werden

Das obige ist der detaillierte Inhalt vonGrafische Details zum Vergleich von ArrayList und LinkedList 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