Comment joindre deux ArrayList

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

En Java, ArrayList est une classe d'implémentation de l'interface List dans le framework de collections et est utilisée pour stocker des données. Joindre deux ArrayLists est en fait un processus de combinaison des éléments de deux ArrayLists en une seule ArrayList. Cela est utile lorsque nous avons plusieurs flux de données et que nous voulons les rassembler en un seul flux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/BasicSyntaxGroup -.-> java/output("Output") java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/collections_methods("Collections Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/arraylist("ArrayList") java/FileandIOManagementGroup -.-> java/stream("Stream") subgraph Lab Skills java/output -.-> lab-117440{{"Comment joindre deux ArrayList"}} java/arrays -.-> lab-117440{{"Comment joindre deux ArrayList"}} java/collections_methods -.-> lab-117440{{"Comment joindre deux ArrayList"}} java/classes_objects -.-> lab-117440{{"Comment joindre deux ArrayList"}} java/arraylist -.-> lab-117440{{"Comment joindre deux ArrayList"}} java/stream -.-> lab-117440{{"Comment joindre deux ArrayList"}} end

Création d'ArrayLists

Tout d'abord, créons deux ArrayLists que nous souhaitons joindre. Voici un exemple où nous créons deux ArrayLists d'entiers :

import java.util.ArrayList;
import java.util.Arrays;

public class Main {
    public static void main(String[] args){
        ArrayList<Integer> arrList1 = new ArrayList<>();
		arrList1.add(1030);
		arrList1.add(1020);
		arrList1.add(1010);
		arrList1.add(1040);
		System.out.println(arrList1);

        ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1060,1070));
		System.out.println(arrList2);
    }
}

Pour exécuter ce code, tapez la commande suivante dans le terminal :

javac Main.java && java Main

Cela produira la sortie suivante :

[1030, 1020, 1010, 1040]
[1050, 1060, 1070]

Joindre des ArrayLists avec addAll()

Pour joindre deux ArrayLists en utilisant la méthode addAll(), suivez le code ci-dessous :

import java.util.ArrayList;
import java.util.Arrays;

public class Main {
    public static void main(String[] args){
        ArrayList<Integer> arrList1 = new ArrayList<>();
		arrList1.add(1030);
		arrList1.add(1020);
		arrList1.add(1010);
		arrList1.add(1040);
		System.out.println(arrList1);

        ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1060,1070));
		System.out.println(arrList2);

		// Joindre deux ArrayList
		arrList1.addAll(arrList2);
		System.out.println("Après avoir joint :");
		System.out.println(arrList1);
    }
}

Pour exécuter ce code, tapez la commande suivante dans le terminal :

javac Main.java && java Main

Cela produira la sortie suivante :

[1030, 1020, 1010, 1040]
[1050, 1060, 1070]
Après avoir joint :
[1030, 1020, 1010, 1040, 1050, 1060, 1070]

Joindre des ArrayLists avec flatMap()

Nous pouvons également joindre deux ArrayLists en utilisant la méthode flatMap() et la méthode distinct() en suivant le code ci-dessous :

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
	public static void main(String[] args){
		ArrayList<Integer> arrList1 = new ArrayList<>();
		arrList1.add(1030);
		arrList1.add(1020);
		arrList1.add(1010);
		arrList1.add(1040);
		System.out.println(arrList1);

		ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1030,1070));
		System.out.println(arrList2);

		// Joindre deux ArrayList
		List<Integer> arrList3 = Stream.of(arrList1, arrList2)
									.flatMap(Collection::stream)
									.distinct()
									.collect(Collectors.toList());
		System.out.println("Après avoir joint :");
		System.out.println(arrList3);
	}
}

Pour exécuter ce code, tapez la commande suivante dans le terminal :

javac Main.java && java Main

Cela produira la sortie suivante :

[1030, 1020, 1010, 1040]
[1050, 1030, 1070]
Après avoir joint :
[1030, 1020, 1010, 1040, 1050, 1070]

Code complet

Voici le code complet pour joindre deux ArrayLists en Java :

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
	public static void main(String[] args){
		ArrayList<Integer> arrList1 = new ArrayList<>();
		arrList1.add(1030);
		arrList1.add(1020);
		arrList1.add(1010);
		arrList1.add(1040);
		System.out.println(arrList1);

		ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1030,1070));
		System.out.println(arrList2);

		// Joindre deux ArrayList
		List<Integer> arrList3 = Stream.of(arrList1, arrList2)
									.flatMap(Collection::stream)
									.distinct()
									.collect(Collectors.toList());
		System.out.println("Après avoir joint :");
		System.out.println(arrList3);
	}
}

Exécution du code

Pour exécuter le code, tapez la commande suivante dans le terminal :

javac Main.java && java Main

Cela produira la sortie suivante :

[1030, 1020, 1010, 1040]
[1050, 1030, 1070]
Après avoir joint :
[1030, 1020, 1010, 1040, 1050, 1070]

Résumé

Dans ce laboratoire, nous vous avons montré comment joindre deux ArrayLists en Java en utilisant la méthode addAll() de List et la méthode flatMap() de l'API de flux. Nous vous avons également montré un exemple de jonction d'éléments uniques provenant de deux ArrayLists différents. Nous espérons que ce laboratoire vous a été utile!