HOWTO · Java
Wie man eine ArrayList aus einem Array in Java erstellt
Dieses Tutorial demonstriert, wie man ArrayList aus Array in Java mit verschiedenen Methoden mit einer ausführlichen Beschreibung und Beispielen erstellt.
Auf dieser Seite
Wandle ein Array mit Referenztypen mit new ArrayList<>(Arrays.asList(array)), Collections.addAll(list, array) oder einer Schleife mit add() in eine größenveränderbare ArrayList um. Die erste Variante ist kompakt, die zweite füllt eine bereits erstellte Liste. Eine Schleife bietet die Möglichkeit, jedes Element zu filtern oder umzuwandeln.
Was ist ein Array in Java?
Ein Array speichert eine festgelegte Anzahl von Werten desselben Typs. Seine Länge steht bei der Erstellung fest; das Array selbst kann weder wachsen noch schrumpfen. Zum Beispiel erstellt String[] subjects = {"maths", "english"}; ein Array mit zwei Positionen.
Was ist eine ArrayList in Java?
ArrayList<E> ist eine größenveränderbare Implementierung des Java-Interfaces List<E> aus dem Paket java.util. Sie kann wachsen, wenn Elemente hinzugefügt werden, und schrumpfen, wenn Elemente entfernt werden. Sie speichert Referenztypen. Für Zahlen und andere primitive Werte verwendest du den entsprechenden Wrapper-Typ, zum Beispiel Integer für int.
Unterschied zwischen einem Array und einer ArrayList in Java
Verwende ein Array, wenn seine feste Länge zu den Daten passt oder eine API ein Array erwartet. Eine ArrayList ist geeignet, wenn du Listenoperationen benötigst oder sich die Anzahl der Elemente ändern kann. Durch die Konvertierung wird das ursprüngliche Array nicht größenveränderbar: Dabei wird eine separate Liste erstellt oder gefüllt. Kopiert werden die Objektverweise, sodass beide Container weiterhin auf dieselben Objekte verweisen können.
Eine ArrayList aus einem Array mit Arrays.asList() erstellen
Übergib das Array an Arrays.asList() und übergib das Ergebnis an den Konstruktor von ArrayList. Der Konstruktor kopiert die Elemente in eine neue, größenveränderbare Liste. Im Gegensatz dazu liefert Arrays.asList() allein eine Liste fester Größe zurück, die vom Array unterstützt wird: Wird ein Element ersetzt, ist die Änderung in beiden sichtbar. Das Hinzufügen oder Entfernen von Listenelementen wird dagegen nicht unterstützt.
Führe dieses Beispiel aus. Der Code und die darin angezeigten Bezeichnungen oder Ausgaben bleiben auf Englisch.
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] subjects = {"maths", "english", "history"};
ArrayList<String> subjectList = new ArrayList<>(Arrays.asList(subjects));
subjectList.add("physics");
System.out.println(subjectList);
}
}
[maths, english, history, physics]
Eine ArrayList aus einem Array mit Collections.addAll() erstellen
Erstelle zuerst die Zielliste und übergib dann sowohl diese als auch das Quellarray an Collections.addAll(). Das ist nützlich, wenn die Liste bereits Elemente enthält oder du die Array-Elemente zu ihr hinzufügen möchtest. Die Zielliste bleibt größenveränderbar.
Der Code und die darin angezeigten Bezeichnungen oder Ausgaben bleiben auf Englisch.
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
String[] names = {"john", "emma", "rick"};
ArrayList<String> nameList = new ArrayList<>();
Collections.addAll(nameList, names);
nameList.add("tim");
System.out.println(nameList);
}
}
[john, emma, rick, tim]
Eine ArrayList aus einem Array mit einer Schleife und add() erstellen
Mit einer Schleife kannst du jedes Element prüfen oder umwandeln, bevor du es hinzufügst. Sie eignet sich auch, wenn du die Zielliste auf eigene Weise aufbauen möchtest.
Der Code und die darin angezeigten Bezeichnungen oder Ausgaben bleiben auf Englisch.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
String[] planets = {"earth", "mars", "venus"};
ArrayList<String> planetList = new ArrayList<>();
for (String planet : planets) {
planetList.add(planet);
}
System.out.println(planetList);
}
}
[earth, mars, venus]
Diese Beispiele verwenden Arrays mit Referenztypen. Ein primitives Array wie int[] lässt sich mit diesen generischen Konvertierungen nicht direkt in eine List<Integer> umwandeln: Arrays.asList(intArray) behandelt das gesamte int[] als ein einziges Element. Um jeden Wert in ein Integer umzuwandeln, verwende eine Schleife. Der folgende Code und die darin angezeigten Bezeichnungen oder Ausgaben bleiben auf Englisch:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
int[] scores = {7, 12, 18};
ArrayList<Integer> scoreList = new ArrayList<>();
for (int score : scores) {
scoreList.add(score);
}
System.out.println(scoreList);
}
}
[7, 12, 18]
Eine Methode zum Erstellen einer ArrayList aus einem Array auswählen
Wähle new ArrayList<>(Arrays.asList(array)), wenn du eine kompakte Kopie in eine neue, größenveränderbare Liste erstellen möchtest. Verwende Collections.addAll(existingList, array), wenn eine Zielliste bereits vorhanden ist. Eine Schleife ist geeignet, wenn du Elemente beim Kopieren filtern, umwandeln oder anderweitig verarbeiten musst. Bei einem primitiven Array fügst du die Werte einzeln hinzu, damit Java sie automatisch in den Wrapper-Typ umwandeln kann, den ArrayList erwartet.