Unterschiede zwischen Array und ArrayList

Array und ArrayList sind wichtige Datenstrukturen, in denen eine Reihe von Elementen gespeichert und verarbeitet werden. Aber es gibt wesentliche Unterschiede zwischen ihnen. Ein guter Programmierer muss die Vergleiche zwischen ihnen kennen, damit er effektiv entscheiden kann, was wann und warum verwendet werden soll.

Array

Das Array ist eine Datenstruktur, in der Elemente einer bestimmten Größe eines ähnlichen Typs gespeichert werden können. Beispiel: Array vom Typ Integer, Array vom Typ String usw. Daher ist ein normales Array in Java eine statische Datenstruktur.

Anordnungsliste

Eine ArrayList ist eine dynamische Datenstruktur, in der Elemente hinzugefügt und aus der Liste entfernt werden können. Wenn Sie sich nicht sicher sind, wie viele Elemente sich in Ihrem Array befinden werden, werden Sie durch diese dynamische Datenstruktur gespart.

In diesem Artikel werden die Unterschiede zwischen Array und ArrayList in Java erläutert.

Beispiel zum Verständnis von Array und ArrayList

Das Array ist eine Datenstruktur, in der wir Elemente einer bestimmten festen Größe eines ähnlichen Typs speichern können.

Code Beispiel:

Lassen Sie uns ein Array von fünf Elementen vom Typ int erstellen. Wir werden sie mit der for-Schleife durchlaufen

Eine ArrayList ist eine dynamische Datenstruktur, in der Elemente hinzugefügt und aus der Liste entfernt werden können. Wenn Sie sich nicht sicher sind, wie viele Elemente sich in Ihrem Array befinden werden, werden Sie durch diese dynamische Datenstruktur gespart.

Code Beispiel:

Kopf-an-Kopf-Unterschiede zwischen Array und ArrayList (Infografiken)

Im Folgenden sind die wichtigsten Unterschiede zwischen Array und ArrayList aufgeführt:

Hauptunterschiede zwischen Array und ArrayList in Java

1. Flexibilität

Ein Array ist eine statische Datenstruktur. Nachdem Sie die Größe des Arrays definiert haben, können Sie den Wert seiner Größe nicht mehr ändern. Daher ist ein normales Array in Java eine statische Datenstruktur, da die anfängliche Größe des Arrays festgelegt ist.

Andererseits ist ArrayList in der Größe flexibel. Sie können nach Belieben Elemente zur Liste hinzufügen oder daraus entfernen. Beim Entfernen von Elementen aus ArrayList weisen wir dem Index, dessen Wert entfernt wird, null zu, und der gesamte Indexwert wird automatisch um eins herabgestuft. Ähnliches gilt zusätzlich auch.

2. Implementierung

Ein Array ist eine Datenstruktur, in der Elemente einer bestimmten festen Größe eines ähnlichen Typs gespeichert werden können. Eine ArrayList ist eine dynamische Datenstruktur, in der Elemente hinzugefügt und aus der Liste entfernt werden können. Tatsächlich wird ArrayList mithilfe eines Arrays in Java implementiert. Sie müssen das Paket java.util.ArrayList importieren, um mithilfe der ArrayList () - Methode ein ArrayList-Objekt zu erstellen.

Beispielcode-Snippet von Array

Beispielcode-Snippet von ArrayList

3. Leistung

Obwohl ArrayList grundsätzlich auf Array basiert, sehen wir Leistungsunterschiede zwischen ihnen. Dies ist auf den Speichertyp und die Funktionalität der ArrayList zurückzuführen. Wir sehen Leistungsunterschiede in Bezug auf CPU-Zeit und Speicherauslastung. Abhängig von den von Ihnen ausgeführten Vorgängen variiert die Leistung von Array und ArrayList:

ArrayList benötigt mehr Speicher als ein Array. Dies liegt daran, dass das Speichern ähnlicher Objekte mehr Speicher benötigt als das Speichern ähnlicher primitiver Variablen.

Operation resize (): ArrayList verwendet die automatische Größenänderung, bei der ein temporäres Array erstellt wird, um Elemente aus dem alten Array in ein neues Array zu kopieren. Dies verlangsamt die Gesamtleistung.

get () -Operation: Für den indexbasierten Zugriff haben sowohl ArrayList als auch Array die gleiche Leistung, da dies eine konstante Zeit erfordert.

add () -Operation: Hier sehen wir den Hauptunterschied darin, dass das Hinzufügen eines neuen Elements in ArrayList intern zwei Operationen erfordert: Kopieren und Ändern der Größe. Durch das Hinzufügen in ArrayList wird ein neues Array im Hintergrund erstellt und Elemente von einem alten in ein neues Array kopiert.

4. Primitive

Ein Array kann sowohl primitive als auch Objekttypen von Elementen speichern. Auf der anderen Seite kann eine ArrayList keine primitiven Typen speichern. Es können nur Objekte desselben Typs gespeichert werden.

Wie können wir dann Integer-Werte in einer ArrayList speichern?

Die Antwort ist die Autoboxing- Fähigkeit von JVM. Beim Autoboxen werden primitive Objekte intern in entsprechende Objekte konvertiert.

Beispielsweise:

Daher wird das Autoboxen intern unter den Bedingungen ausgeführt

5. Geben Sie Sicherheit ein

Ein Array kann nur Elemente eines ähnlichen Typs speichern. Wenn Sie andere als die angegebenen Elementtypen in einem Array speichern möchten, wird ArrayStoreException ausgelöst, während das Objekt dieses Arrays erstellt wird. Diese Ausnahme wird zur Laufzeit ausgelöst, da das Array daher nicht typsicher ist. Für das Array gibt es keine Überprüfung zur Kompilierungszeit.

Beispielsweise:

Auf der anderen Seite ist ArrayList typsicher, da es die generische Typensicherheit gewährleistet. Generics ermöglicht es dem Compiler, während der Kompilierung zu prüfen, ob der Typ nicht übereinstimmt.

6. Durchlaufen der Werte

ArrayList verwendet die iterator () -Methode, um die Auflistung zu erstellen. Mit einer while-Schleife durchlaufen wir die Elemente nacheinander und geben die Werte aus.

Auf der anderen Seite können wir for-Schleife oder für jede Schleife verwenden, um ein Array zu durchlaufen.

7. Länge

In vielen Anwendungsfällen müssen wir möglicherweise die Größe des gesamten Arrays ermitteln. Im Falle von Arraylist ist diese Berechnung ziemlich einfach. Mit der size () -Methode können wir eine Länge von ArrayList ermitteln.

Andererseits hat jedes Array-Objekt die Längenvariable, die die Länge des Arrays zurückgibt.

Beispielsweise:

8. Elemente hinzufügen

Das Hinzufügen oder Einfügen ist in ArrayList möglich, da es sich um eine dynamische Datenstruktur handelt. Wir können die Methode add () verwenden, um Elemente nach ihrer Erstellung in eine ArrayList einzufügen.

Andererseits ist die Größe des Arrays festgelegt. Wir können jedoch Elemente durch Zuweisung in ein Array einfügen. Wir können keine neuen Elemente dynamisch hinzufügen, die über die Größe eines Arrays hinausgehen.

Beispielsweise:

9. Dimension

ArrayList ist eindimensional. Während das Array mehrdimensional sein kann.

Beispielsweise:

Array und ArrayList - Vergleichstabelle

Lassen Sie uns den besten Vergleich zwischen Array und ArrayList diskutieren

VergleichsbasisArrayAnordnungsliste
FlexibilitätDas Array ist eine statische DatenstrukturArrayList ist eine dynamische Datenstruktur
Primitivekann sowohl primitive als auch objekttypische Elemente speichernkann nur Objekte desselben Typs speichern.
Typ SicherheitDas Array kann nur Elemente eines ähnlichen Typs speichern. Andernfalls wird ArrayStoreException ausgelöst, während das Objekt dieses Arrays erstellt wird.ArrayList ist typsicher, da es die generische Typensicherheit gewährleistet.
Werte durchlaufenVerwenden Sie für die Schleife oder für jede Schleife, um eine Iteration zu erreichen.Verwendet die iterator () -Methode, um die Auflistung zu erstellen
Elemente hinzufügenkann durch Zuweisung Elemente in ein Array einfügen.Verwenden Sie die Methode add (), um Elemente in eine ArrayList einzufügen

Abmessungenmehrdimensionaleindimensional

Fazit-Array vs ArrayList

Das alles betrifft den wichtigen Unterschied zwischen einem Array und einer ArrayList in Java. Der wichtigste Unterschied, den Sie beachten müssen, ist, dass Array statisch ist, während ArrayList dynamisch ist. In erster Linie basierend auf dieser Unterscheidung müssen Sie ein Array verwenden, wenn Sie die vor Ihnen liegenden Dimensionen erkennen. Wenn Sie sich nicht sicher sind, verwenden Sie einfach die ArrayList.

Empfohlene Artikel

Dies ist eine Anleitung zu Array vs ArrayList. Hier diskutieren wir die Hauptunterschiede zwischen Array und ArrayList mit Infografiken, Beispielen und einer Vergleichstabelle. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Java Vector vs ArrayList
  2. C # Array vs Liste
  3. C gegen Java
  4. Vorteile des Arrays
  5. Iterator in Java
  6. Vorteile von Python-Loops | Beispiel