ArrayList in Java kopieren
- Kopieren einer ArrayList in eine andere durch Übergabe an den Konstruktor einer anderen ArrayList
-
ArrayList in eine andere kopieren mit der
addAll()
Funktion -
ArrayList mit Java 8
Stream
kopieren -
Kopieren einer ArrayList in eine andere mit der Methode
clone()
Dieser Artikel stellt vier Methoden zum Kopieren einer ArrayList in eine andere ArrayList in Java vor. Wir werden in jedem Beispiel die gleichen Elemente verwenden, um eine ArrayList mit verschiedenen Methoden zu kopieren.
Kopieren einer ArrayList in eine andere durch Übergabe an den Konstruktor einer anderen ArrayList
Eine ArrayList in Java kann drei Arten von Konstruktoren haben. Wir können ein ArrayList-Objekt mit einem leeren Konstruktor, mit anfänglicher Größe oder mit einer Sammlung erstellen, in der die ArrayList mit den Elementen der Sammlung erstellt wird.
Wir werden die dritte Art von Konstruktor verwenden; wir erstellen zunächst eine ArrayList Namen1
mit einem leeren Konstruktor und fügen dann einige zufällige Namen hinzu. Wir erstellen eine neue ArrayList names2
, um die Elemente von names1
in diese zu kopieren und übergeben names1
an den Konstruktor new ArrayList<>(names1)
.
Zuletzt geben wir die gesamte names2
ArrayList mit forEach
aus, das jedes Element druckt.
import java.util.ArrayList;
public class CopyArrayList {
public static void main(String[] args) {
ArrayList<String> names1 = new ArrayList<>();
names1.add("Alan");
names1.add("Alex");
names1.add("Bob");
names1.add("Bryan");
names1.add("Cathy");
names1.add("Drake");
ArrayList<String> names2 = new ArrayList<>(names1);
names2.forEach(System.out::println);
}
}
Ausgabe:
Alan
Alex
Bob
Bryan
Cathy
Drake
ArrayList in eine andere kopieren mit der addAll()
Funktion
ArrayList kommt mit einer Funktion addAll()
, die eine Collection
als Argument nimmt und die Elemente der gegebenen Collection am Ende der ArrayList hinzufügt oder anhängt, wenn es bereits Elemente gibt. ArrayList implementiert Collection
, was uns erlaubt, die ArrayList Namen1
als Argument der Methode addAll()
zu verwenden.
names1
enthält ein paar Elemente, die in die neu erstellte leere ArrayList names2
kopiert werden sollen. Und das geschieht durch names2.addAll(names1)
. Die Ausgabe zeigt die kopierten Elemente von names2
.
import java.util.ArrayList;
public class CopyArrayList {
public static void main(String[] args) {
ArrayList<String> names1 = new ArrayList<>();
names1.add("Alan");
names1.add("Alex");
names1.add("Bob");
names1.add("Bryan");
names1.add("Cathy");
names1.add("Drake");
ArrayList<String> names2 = new ArrayList<>();
names2.addAll(names1);
names2.forEach(System.out::println);
}
}
Ausgabe:
Alan
Alex
Bob
Bryan
Cathy
Drake
ArrayList mit Java 8 Stream
kopieren
In diesem Beispiel verwenden wir die neue Stream API
, die in Java 8 eingeführt wurde. Wir erstellen eine ArrayList mit Elementen, rufen dann die Methode stream()
mit names1
auf, um die Stream-Methoden wie die Methode collect()
zu verwenden, die den Stream sammelt und mit Collectors.toList()
in eine Liste faltet.
Dieser Stream liefert eine Liste, die in eine ArrayList gecastet werden muss.
import java.util.ArrayList;
import java.util.stream.Collectors;
public class CopyArrayList {
public static void main(String[] args) {
ArrayList<String> names1 = new ArrayList<>();
names1.add("Alan");
names1.add("Alex");
names1.add("Bob");
names1.add("Bryan");
names1.add("Cathy");
names1.add("Drake");
ArrayList<String> names2 = (ArrayList<String>) names1.stream().collect(Collectors.toList());
names2.forEach(System.out::println);
}
}
Ausgabe:
Alan
Alex
Bob
Bryan
Cathy
Drake
Kopieren einer ArrayList in eine andere mit der Methode clone()
Die letzte Methode ist die clone()
Methode, die eine native ArrayList
Methode ist. Sie kopiert die Elemente und gibt eine neue Liste zurück, ähnlich wie bei der vorherigen Lösung. Wir erstellen eine ArrayList mit Elementen und rufen die clone()
Methode auf. Zuletzt casten wir das zurückgegebene Ergebnis auf ArrayList<String>
, um unser gewünschtes Ergebnis zu erhalten.
import java.util.ArrayList;
public class CopyArrayList {
public static void main(String[] args) {
ArrayList<String> names1 = new ArrayList<>();
names1.add("Alan");
names1.add("Alex");
names1.add("Bob");
names1.add("Bryan");
names1.add("Cathy");
names1.add("Drake");
ArrayList<String> names2 = (ArrayList<String>) names1.clone();
names2.forEach(System.out::println);
}
}
Ausgabe:
Alan
Alex
Bob
Bryan
Cathy
Drake
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn