Cómo unir dos ArrayList

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En Java, ArrayList es una clase de implementación de la interfaz List en el marco de colecciones y se utiliza para almacenar datos. Unir dos ArrayLists es en realidad un proceso de combinar los elementos de dos ArrayLists en un solo ArrayList. Esto es útil cuando tenemos múltiples flujos de datos y queremos recopilarlos en un solo flujo.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) 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{{"Cómo unir dos ArrayList"}} java/arrays -.-> lab-117440{{"Cómo unir dos ArrayList"}} java/collections_methods -.-> lab-117440{{"Cómo unir dos ArrayList"}} java/classes_objects -.-> lab-117440{{"Cómo unir dos ArrayList"}} java/arraylist -.-> lab-117440{{"Cómo unir dos ArrayList"}} java/stream -.-> lab-117440{{"Cómo unir dos ArrayList"}} end

Creación de ArrayLists

Primero, creemos dos ArrayLists que queremos unir. Aquí hay un ejemplo donde creamos dos ArrayLists de enteros:

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

Para ejecutar este código, escriba el siguiente comando en la terminal:

javac Main.java && java Main

Esto producirá la siguiente salida:

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

Unir ArrayLists con addAll()

Para unir dos ArrayLists utilizando el método addAll(), siga el código siguiente:

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

		// Unir dos ArrayList
		arrList1.addAll(arrList2);
		System.out.println("Después de unir:");
		System.out.println(arrList1);
    }
}

Para ejecutar este código, escriba el siguiente comando en la terminal:

javac Main.java && java Main

Esto producirá la siguiente salida:

[1030, 1020, 1010, 1040]
[1050, 1060, 1070]
Después de unir:
[1030, 1020, 1010, 1040, 1050, 1060, 1070]

Unir ArrayLists con flatMap()

También podemos unir dos ArrayLists utilizando el método flatMap() y el método distinct() siguiendo el código siguiente:

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

		// Unir dos ArrayList
		List<Integer> arrList3 = Stream.of(arrList1, arrList2)
									.flatMap(Collection::stream)
									.distinct()
									.collect(Collectors.toList());
		System.out.println("Después de unir:");
		System.out.println(arrList3);
	}
}

Para ejecutar este código, escriba el siguiente comando en la terminal:

javac Main.java && java Main

Esto producirá la siguiente salida:

[1030, 1020, 1010, 1040]
[1050, 1030, 1070]
Después de unir:
[1030, 1020, 1010, 1040, 1050, 1070]

Código completo

Aquí está el código completo para unir dos 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);

		// Unir dos ArrayList
		List<Integer> arrList3 = Stream.of(arrList1, arrList2)
									.flatMap(Collection::stream)
									.distinct()
									.collect(Collectors.toList());
		System.out.println("Después de unir:");
		System.out.println(arrList3);
	}
}

Ejecución del código

Para ejecutar el código, escriba el siguiente comando en la terminal:

javac Main.java && java Main

Esto producirá la siguiente salida:

[1030, 1020, 1010, 1040]
[1050, 1030, 1070]
Después de unir:
[1030, 1020, 1010, 1040, 1050, 1070]

Resumen

En este laboratorio, le hemos mostrado cómo unir dos ArrayLists en Java utilizando el método addAll() de List y el método flatMap() de la API de flujos. También le hemos mostrado un ejemplo de unión de elementos únicos de dos ArrayLists diferentes. Esperamos que este laboratorio haya sido útil para usted.