Copier ArrayList en Java

Rupam Yadav 12 octobre 2023
  1. Copier un ArrayList dans un autre en le passant au constructeur d’un autre ArrayList
  2. Copier ArrayList dans un autre tableau en utilisant la fonction addAll()
  3. Copier ArrayList à l’aide de Java 8 Stream
  4. Copier ArrayList dans une autre liste en utilisant la méthode clone()
Copier ArrayList en Java

Cet article présente quatre méthodes pour copier un ArrayList vers un autre ArrayList en Java. Nous utiliserons les mêmes éléments dans chaque exemple pour copier un ArrayList en utilisant des méthodes différentes.

Copier un ArrayList dans un autre en le passant au constructeur d’un autre ArrayList

Une ArrayList en Java peut avoir trois types de constructeur. Nous pouvons créer un objet ArrayList avec un constructeur vide, de taille initiale, ou une collection dans laquelle la ArrayList est créée à l’aide des éléments de la collection.

Nous utiliserons le troisième type de constructeur ; nous créons d’abord un ArrayList names1 avec un constructeur vide, puis nous ajoutons quelques noms aléatoires. Nous créons un nouveau ArrayList names2 pour y copier les éléments de names1 et nous passons names1 au constructeur new ArrayList<>(names1).

Enfin, nous imprimons l’ensemble du tableau names2 en utilisant forEach qui imprime chaque élément.

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);
  }
}

Production :

Alan
Alex
Bob
Bryan
Cathy
Drake

Copier ArrayList dans un autre tableau en utilisant la fonction addAll()

ArrayList est livré avec une fonction addAll() qui prend une Collection comme argument et ajoute ou ajoute les éléments de la collection donnée à la fin de la ArrayList s’il y a des éléments existants. ArrayList implémente la Collection, ce qui nous permet d’utiliser le names1 de ArrayList comme argument de la méthode addAll().

names1 contient quelques éléments qui doivent être copiés dans la Arraylist names2 vide nouvellement créée. Et c’est fait par names2.addAll(names1). La sortie montre les éléments copiés de 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);
  }
}

La sortie :

Alan
Alex
Bob
Bryan
Cathy
Drake

Copier ArrayList à l’aide de Java 8 Stream

Dans cet exemple, nous utilisons la nouvelle Stream API introduite dans Java 8. Nous créons une ArrayList avec des éléments, puis nous appelons la méthode stream() avec names1 pour utiliser les méthodes stream comme la méthode collect() qui collecte le flux et le plie en une liste en utilisant Collectors.toList().

Ce flux renvoie une liste, qui doit être transformée en ArrayList.

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);
  }
}

Production :

Alan
Alex
Bob
Bryan
Cathy
Drake

Copier ArrayList dans une autre liste en utilisant la méthode clone()

La dernière méthode est la méthode clone() qui est une méthode native ArrayList. Elle copie les éléments et renvoie une nouvelle liste, similaire à la solution précédente. Nous créons une ArrayList avec des éléments et appelons la méthode clone(). Enfin, nous jetons les résultats renvoyés dans ArrayList<String> pour obtenir le résultat souhaité.

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);
  }
}

Production:

Alan
Alex
Bob
Bryan
Cathy
Drake
Auteur: Rupam Yadav
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

Article connexe - Java ArrayList