CodeGym /Java-Blog /Random-DE /Konvertierung von Array in ArrayList in Java
Autor
Artem Divertitto
Senior Android Developer at United Tech

Konvertierung von Array in ArrayList in Java

Veröffentlicht in der Gruppe Random-DE
Hallo! In der heutigen Lektion sprechen wir darüber, wie man ein Array in Java initialisiert und wie man ein Array in eine Arrayliste umwandelt. Arrays sind eine Erweiterung der Container-Klasse in Java und können nützlich sein, um vorübergehend einen Satz primitiver Datentypen zu speichern, wenn die Datenmenge genau bekannt ist. Aber Arrays sind beim Erstellen statisch, was bedeutet, dass Sie beim Erstellen eines Arrays die Anzahl der darin enthaltenen Elemente nicht ändern können. Sie sollten sich daran erinnern, wie Sie ein Array in Java initialisieren. es sieht aus wie das:

datatype[] isArray;
Dabei ist Datentyp ein beliebiger primitiver Datentyp wie int, float, long oder sogar String. Sie können die Klammern auch wie folgt nach der Deklaration platzieren:

datatype isArray[];
Wie nehmen wir also dieses statische Array mit einer festgelegten Anzahl von Elementen und konvertieren es in eine ArrayList? Schauen wir uns zunächst an, was eine ArrayList ist.

Die ArrayList

Eine ArrayList hat möglicherweise einen ähnlichen Namen wie ein Array, wird jedoch völlig anders gehandhabt. Das liegt daran, dass eine ArrayList nicht die Container-Klasse, sondern die List-Klasse erweitert. Und das bedeutet, dass alles anders gehandhabt wird. Da es sich um eine Liste handelt, können Sie sie auf unterschiedliche Weise bearbeiten. Sie können die Größe der ArrayList mit add(element) vergrößern oder verkleinern , wodurch das Element am Ende der Liste platziert und die Größe bei Bedarf um eins erhöht wird. Oder Sie können trimToSize() verwendenDadurch werden alle leeren Indizes am Ende entfernt und die ArrayList auf ihre aktuelle Größe gekürzt. Sie sehen also, dass die Verwendung einer ArrayList statt nur eines Arrays einige Vorteile bietet. Als Nächstes zeigen wir Ihnen zwei Methoden zum Konvertieren von einem Array in eine ArrayList und wie Sie bei Bedarf zurückgehen können.

Wechsel von Array zu ArrayList und ArrayList zu Array in Java

Nehmen wir also an, Sie haben ein Programm geschrieben, um eine Bestandsaufnahme darüber zu führen, wie viele Schrauben und Muttern Ihr Unternehmen für die Reparatur von Kratzbäumen zur Verfügung hat. Da man jahrelang nur 30 verschiedene Typen davon benötigte, war es einfach, einfach ein Array zu verwenden, um den Überblick zu behalten. Aber jetzt haben Sie einen neuen Kunden, der von Ihnen verlangt, weitere 5 Typen auf Lager zu haben. Wie können Sie Ihr Programm ändern und alle Ihre Daten behalten UND verhindern, dass Sie dies erneut tun müssen, wenn Sie einen anderen Kunden gewinnen? Das ist richtig! Eine ArrayList! Wie konvertiert man also ein Java-Array in eine ArrayList? Es gibt drei Methoden. Mit der .asList() -Methode verfügen Java-Arrays über ein großartiges Tool, das Sie sehen können, wenn Sie sich die API namens .asList() ansehen . Du könntest also einfach Folgendes hineinschreiben:

boltInventory.asList(bolts);
Das Problem bei dieser Methode besteht darin, dass sie keine echte ArrayList erstellt. Es erstellt eine Liste mit fester Größe, die nicht geändert werden kann. Sie können die Größe also immer noch nicht dynamisch ändern. Der Versuch, Elemente hinzuzufügen oder zu entfernen, führt zu einer Ausnahme. Obwohl dies also seinen Nutzen hat, handelt es sich nicht um eine echte Konvertierung. Aber das können wir nutzen. Verwendung von .asList() als Argument Dies ist die zweite Möglichkeit, ein Array in eine Liste in Java umzuwandeln. Da die Methode .asList() eine Liste erstellt, können wir damit einen Verweis auf unsere tatsächliche ArrayList übergeben. So initialisieren Sie eine ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Dadurch wird eine ArrayList mit zehn leeren Zellen erstellt. Allerdings kann die () am Ende verwendet werden, um ein Argument zum Füllen der ArrayList zu übergeben. In Kombination mit der .asList -Methode erhalten Sie also:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Dadurch wird die von der Methode .asList() erstellte Liste an die ArrayList übergeben, sodass Sie sie jetzt nach Bedarf dynamisch bearbeiten können. Verwenden der Collections.addAll() -Methode Eine andere Möglichkeit, ein Array in eine ArrayList in Java zu konvertieren, ist die Verwendung dieser Methode. Es übergibt den Inhalt des Arrays an die ArrayList. Die generische Syntax für diese Methode lautet:

Collections.addAll(c, T);
Dabei ist c das Ziel und T das, was übergeben wird. Für unser Beispiel würde die Syntax also so aussehen:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Dadurch wird der gesamte Inhalt der Array-Bolzen an die neue ArrayList übergeben. Konvertieren einer ArrayList in ein Array Es kann vorkommen, dass Sie in Java eine ArrayList in ein Array konvertieren müssen. Wenn Sie dies tun, verfügt die ArrayList über eine Methode .toArray(a) , wobei a das Ziel ist. Für unser Beispiel wäre die Syntax also:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Wenn Sie in Java eine Liste auf diese Weise in ein Array ändern, erstellen Sie eine tiefe Kopie. Das heißt, alle Verweise auf das Array unterscheiden sich von den Verweisen auf die ArrayList. Sie können also die Daten im Array manipulieren, ohne die in der ArrayList gespeicherten Daten zu ändern. Es ist nützlich, eine Java-Liste in ein Array zu konvertieren, wenn Sie Daten testen müssen.

Abschluss

Arrays sind sehr nützlich für den schnellen Zugriff und die schnelle Bearbeitung kleinerer Datensätze, aber da ihre Größe nicht geändert werden kann, verlieren sie bei langfristiger Verwendung schnell an Effizienz. Eine ArrayList bietet Ihnen diese Flexibilität und die Möglichkeit, Knoten nach Bedarf einzufügen und zu entfernen. Wenn Sie lernen, wie Sie ein Java-Array in eine Liste konvertieren, verbessern Sie die Gesamteffizienz Ihrer Programme und verbessern auch deren Laufzeiten.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION