Cómo unirse a dos listas en Java
-
Usa
Stream
para unir dos listas en Java - Usa el constructor de parámetros para unir dos listas en Java
-
Usa
new array
predeclarado para unir dos listas en Java
A menudo, antes de emprender cualquier procedimiento, tenemos que combinar varias listas en una sola. Hay bastantes maneras diferentes de fusionar dos listas o combinarlas en listas más grandes. En este artículo veremos dos formas rápidas de fusionar dos listas en Java, que se pueden ampliar para fusionar o reforzar cualquier número de listas. Array-List o Linked-List basada en Java.
Una forma de combinar muchas colecciones es usar la función adddAll()
de la clase java.util collection
, que te ayuda a añadir material de una lista a otra. Puedes asignar contenidos a tantas listas como quieras usando la función addAll()
, y es la forma más fácil de combinar muchas listas.
También se explican algunos otros métodos para una mejor comprensión.
- Uso de
Stream
- El uso de
Constructor Parametrizado
- El uso de la
Predeclared List
yaddAll()
Usa Stream
para unir dos listas en Java
Los flujos en la versión 8 de Java nos permiten tener una solución de una sola línea para la mayor parte de los problemas, y al mismo tiempo, el código se ve limpio. un array de elementos que apuntalan diferentes estrategias que pueden ser canalizadas para crear el resultado ideal stream
. En la solución mencionada abajo, lst.stream()
convierte la lista en el tipo de datos Stream
, luego Stream.concat(Strem1,Stream2)
concatena dos objetos Stream
diferentes y luego Stream.collect(collectors.toList)
convierte el objeto Stream
en el objeto de la lista.
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Abc {
public static void main(String[] args) {
List<String> list1, list2;
list1 = new ArrayList<String>();
list2 = new ArrayList<String>();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list2.add("5");
list2.add("6");
list2.add("7");
list2.add("8");
for (int i = 0; i < list1.size(); i++) {
System.out.print(list1.get(i) + " ");
}
System.out.println();
for (int i = 0; i < list2.size(); i++) {
System.out.print(list2.get(i) + " ");
}
System.out.println();
// first Solution
List<String> resultList1 =
Stream.concat(list1.stream(), list2.stream()).collect(Collectors.toList());
// first Solution Prints
System.out.println("first Solution Prints");
for (int i = 0; i < resultList1.size(); i++) {
System.out.print(resultList1.get(i) + " ");
}
System.out.println();
}
}
Usa el constructor de parámetros para unir dos listas en Java
List<String> newList = new ArrayList<String>(listOne);
creará una lista llamando al constructor de parámetros que copia la lista dada en el nuevo objeto de la lista luego newList.addAll(listTwo);
añade una lista (list2
) en la lista recién declarada.
import java.util.ArrayList;
import java.util.List;
public class Abc {
public static void main(String[] args) {
List<String> list1, list2;
list1 = new ArrayList<String>();
list2 = new ArrayList<String>();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list2.add("5");
list2.add("6");
list2.add("7");
list2.add("8");
for (int i = 0; i < list1.size(); i++) {
System.out.print(list1.get(i) + " ");
}
System.out.println();
for (int i = 0; i < list2.size(); i++) {
System.out.print(list2.get(i) + " ");
}
System.out.println();
// Second Solution
List<String> resultList2 = new ArrayList<String>(list1);
resultList2.addAll(list2);
// Second Solution Prints
System.out.println("Second Solution Prints");
for (int i = 0; i < resultList2.size(); i++) {
System.out.print(resultList2.get(i) + " ");
}
System.out.println();
}
}
Usa new array
predeclarado para unir dos listas en Java
Cuando la resultList3
está predefinida o se puede hacer así: List<String> resultList3;
después de declarar n lista de resultados, newList = new ArrayList<String>(list1)
inicializará el nuevo array al incluir elementos de la list1
en él. (list).addAll(list2);
añade los elementos de list2
a list1
.
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Abc {
public static void main(String[] args) {
List<String> list1, list2;
list1 = new ArrayList<String>();
list2 = new ArrayList<String>();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list2.add("5");
list2.add("6");
list2.add("7");
list2.add("8");
for (int i = 0; i < list1.size(); i++) {
System.out.print(list1.get(i) + " ");
}
System.out.println();
for (int i = 0; i < list2.size(); i++) {
System.out.print(list2.get(i) + " ");
}
System.out.println();
// third Solution
List<String> resultList3;
(resultList3 = new ArrayList<String>(list1)).addAll(list2);
// Third Solution Prints
System.out.println("Third Solution Prints");
for (int i = 0; i < resultList3.size(); i++) {
System.out.print(resultList3.get(i) + " ");
}
System.out.println();
}
}