Copier ArrayList en Java
- Copier un ArrayList dans un autre en le passant au constructeur d’un autre ArrayList
-
Copier ArrayList dans un autre tableau en utilisant la fonction
addAll()
-
Copier ArrayList à l’aide de Java 8
Stream
-
Copier ArrayList dans une autre liste en utilisant la méthode
clone()
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
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