Unterschied zwischen Array und ArrayList Unterschied zwischen

Anonim

Was ist Array und ArrayList?

Sowohl Array als auch ArrayList sind indexbasierte Datenstrukturen, die häufig in Java-Programmen verwendet werden. Konzeptionell wird ArrayList intern von Arrays unterstützt, aber der Unterschied zwischen den beiden zu verstehen, ist der Schlüssel zu einem großartigen Java-Entwickler. Es ist ein grundlegender Schritt, vor allem Anfänger, die gerade mit dem Programmieren begonnen haben. Während beide zum Speichern von Elementen in Java verwendet werden, die entweder Primitive oder Objekte sein können, haben sie ihren gerechten Anteil an Unterschieden in Bezug auf Funktionalität und Leistung. Der Hauptunterschied zwischen den beiden ist, dass Array statisch ist, während ArrayList dynamisch ist. Dieser Artikel vergleicht die beiden in verschiedenen Aspekten, so dass Sie eine über die andere auswählen können.

Unterschied zwischen Array und Arraylist

  1. Resizable

Einer der wichtigsten und auffälligsten Unterschiede zwischen den beiden Datenstrukturen besteht darin, dass Array statischer Natur ist, was bedeutet, dass es sich um einen Datentyp fester Länge handelt ArrayList ist dynamisch, was bedeutet, dass es sich um eine Datenstruktur mit variabler Länge handelt. In technischer Hinsicht kann die Länge von Array nicht geändert oder geändert werden, sobald das Array-Objekt erstellt wurde. Es enthält eine sequenzielle Sammlung von Elementen desselben Datentyps. Arrays in Java funktionieren anders als in C / C ++. ArrayList hingegen kann sich selbst skalieren und die Arrays können so wachsen, wie sie benötigt werden. Da es sich um eine dynamische Datenstruktur handelt, können die Elemente hinzugefügt und aus der Liste entfernt werden.

  1. Generics

Sie können keine Arrays generischer Klassen von Interfaces in Java erstellen, so dass Arrays und Generika nicht Hand in Hand gehen, was das Generische Array aus dem einen Grund, warum Arrays kovariant sind, unmöglich macht während Generika invariant sind. Während Array eine Datenstruktur fester Länge ist, enthält es Objekte der gleichen Klasse oder Grundelemente des spezifischen Datentyps. Wenn Sie also versuchen, einen anderen Datentyp als den beim Erstellen eines Array-Objekts angegebenen zu speichern, wird einfach "ArrayStoreException" ausgelöst. ArrayList hingegen unterstützt Generics, um die Typensicherheit zu gewährleisten.

  1. Primitive

Primitive Datentypen wie int, double, long und char sind in ArrayList nicht erlaubt. Es hält eher Objekte und Primitive sind keine Objekte in Java. Arrays hingegen können sowohl Grundelemente als auch Objekte in Java enthalten, da es eine der effizientesten Datenstrukturen in Java zum Speichern von Objekten ist. Es handelt sich um einen aggregierten Datentyp, der Objekte aufnehmen kann, die entweder denselben oder einen anderen Typ aufweisen können.

  1. Length

Um die Länge des Arrays zu erhalten, muss der Code auf das length-Attribut zugreifen, da man die Länge kennen muss, um Operationen auf Array auszuführen.Während ArrayList die size () -Methode verwendet, um die Größe der ArrayList zu bestimmen, unterscheidet sie sich ziemlich von der Länge des Arrays. Das size () - Methodenattribut bestimmt die Anzahl der Elemente in einer ArrayList, was wiederum die Kapazität der ArrayList ist.

Beispiel :

public class ArrayLengthTest {

public static void main (String [] args) {

ArrayList arrList = new ArrayList ();

String [] items = {"Eins", "Zwei", "Drei"};

für (String str: items) {

arrList. füge hinzu (str);

}

int size = Elemente. Größe();

System. aus. println (Größe);

}

}

  1. Implementierung

Array ist eine native Programmierkomponente in Java, die dynamisch erstellt wird und sie verwendet Zuweisungsoperatoren, um Elemente zu halten, während ArrayList das Attribut add () zum Einfügen von Elementen verwendet. ArrayList ist eine Klasse aus dem Sammlungsframework in Java, die eine Reihe von angegebenen Methoden verwendet, um auf die Elemente zuzugreifen und sie zu ändern. Die Größe einer ArrayList kann dynamisch erhöht oder verringert werden. Die Elemente in einem Array werden in einem zusammenhängenden Speicherort gespeichert, und ihre Größe bleibt durchgehend statisch.

  1. Leistung

Während beide Datenstrukturen eine ähnliche Leistung bieten, wie eine ArrayList durch Arrays unterstützt wird, hat man einen Vorteil gegenüber dem anderen, hauptsächlich hinsichtlich der CPU-Zeit und der Speicherauslastung. Nehmen wir an, wenn Sie die Größe des Arrays kennen, gehen Sie wahrscheinlich mit der ArrayList. Das Iterieren über ein Array ist jedoch etwas schneller als das Iterieren über eine ArrayList. Wenn das Programm eine große Anzahl von Primitiven enthält, wird ein Array sowohl hinsichtlich der Zeit als auch des Arbeitsspeichers deutlich besser als die ArrayList arbeiten. Arrays sind eine Low-Level-Programmiersprache, die in Sammlungsimplementierungen verwendet werden kann. Die Leistung hängt jedoch von der ausgeführten Operation ab.

Array Vs. Arraylist

Array ArrayList
Array ist eine Datenstruktur fester Länge, deren Länge nicht mehr geändert werden kann, nachdem das Array-Objekt erstellt wurde. ArrayList ist dynamisch in der Natur, was bedeutet, dass es sich selbst anpassen kann, um bei Bedarf zu wachsen.
Die Größe eines Arrays bleibt während des gesamten Programms statisch. Die Größe einer ArrayList kann abhängig von Auslastung und Kapazität dynamisch wachsen.
Es verwendet den Zuweisungsoperator zum Speichern von Elementen. Er verwendet das Attribut add (), um Elemente einzufügen.
Es kann sowohl Grundelemente als auch Objekte gleichen oder unterschiedlichen Datentyps enthalten. Primitive sind in ArrayList nicht erlaubt. Es kann nur Objekttypen enthalten.
Arrays und Generics gehen nicht Hand in Hand. Generics sind in ArrayList erlaubt.
Arrays können mehrdimensional sein. ArrayList ist eindimensional.
Dies ist eine native Programmierkomponente, bei der die Elemente in zusammenhängenden Speicherbereichen gespeichert werden. Es handelt sich um eine Klasse aus dem Sammlungsframework von Java, in der die Objekte niemals an zusammenhängenden Orten gespeichert werden.
Die Längenvariable wird verwendet, um die Länge des Arrays zu bestimmen. Die Size () -Methode wird verwendet, um die Größe der ArrayList zu bestimmen.
Benötigt weniger Speicher als ArrayList, um bestimmte Elemente oder Objekte zu speichern. Benötigt mehr Speicher als das Array zum Speichern von Objekten.
Das Iterieren über ein Array ist schneller als das Iterieren über eine ArrayList. Das Iterieren über eine ArrayList ist in Bezug auf die Leistung deutlich langsamer.

Zusammenfassung

Während einige der Meinung sind, dass die Implementierung von Arrays in einem Programm schneller Ergebnisse erzielen kann als Array Arrays, weil Arrays eine Low-Level-Datenstruktur sind, kann die Leistung abhängig von der Operation variieren. re performing. Nun, die Länge eines Arrays ist fest, während die Größe von ArrayList dynamisch erhöht oder verringert werden kann, so dass ArrayList in Bezug auf Funktionalität einen kleinen Vorteil gegenüber dem Array hat. Trotz der Unterschiede teilen sie auch einige Gemeinsamkeiten. Bei beiden handelt es sich um indexbasierte Datenstrukturen in Java, mit denen Sie Objekte speichern können und die sowohl Nullwerte als auch Duplikate zulassen. Nun, wenn Sie die Größe der Objekte vorher wissen, sollten Sie mit einem Array gehen, und wenn Sie nicht sicher über die Größe sind, gehen Sie mit der ArrayList.