ArrayList in Java kopieren

Rupam Yadav 12 Oktober 2023
  1. Kopieren einer ArrayList in eine andere durch Übergabe an den Konstruktor einer anderen ArrayList
  2. ArrayList in eine andere kopieren mit der addAll() Funktion
  3. ArrayList mit Java 8 Stream kopieren
  4. Kopieren einer ArrayList in eine andere mit der Methode clone()
ArrayList in Java kopieren

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 Yadav avatar Rupam Yadav avatar

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

Verwandter Artikel - Java ArrayList