Cómo unirse a dos listas en Java

Usama Imtiaz 12 octubre 2023
  1. Usa Stream para unir dos listas en Java
  2. Usa el constructor de parámetros para unir dos listas en Java
  3. Usa new array predeclarado para unir dos listas en Java
Cómo unirse a 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 y addAll()

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

Artículo relacionado - Java List