Como Participar de Duas Listas em Java

Usama Imtiaz 12 outubro 2023
  1. Utilize o Stream para Juntar-se a Duas Listas em Java
  2. Utilize parametrizar construtor para juntar duas listas em Java
  3. Utilize predeclared new array para juntar duas listas em Java
Como Participar de Duas Listas em Java

Muitas vezes, antes de iniciar qualquer procedimento, temos que combinar várias listas em uma só. Há várias maneiras diferentes de fundir duas listas ou combiná-las em listas maiores. Neste artigo, analisaremos duas formas rápidas de fundir duas listas em Java, que você pode ampliar ainda mais para fundir ou impor qualquer número de listas. Array-List ou Linked-List baseada em Java.

Uma maneira de combinar muitas coleções é utilizar a função java.util collection da classe addAll(), que ajuda você a adicionar material de uma lista a outra. Você pode atribuir conteúdo a quantas listas quiser utilizando a função addAll(), e é a maneira mais fácil de fundir muitas listas.

Além disso, alguns outros métodos também são explicados para melhor compreensão.

  • Utilização da função Stream.
  • Utilização de Construtor Parametrizado.
  • Utilização de Pré-declarada Lista e addAll()

Utilize o Stream para Juntar-se a Duas Listas em Java

Streams em Java versão 8 nos permitem ter apenas uma solução de uma linha para a maior parte dos problemas e, ao mesmo tempo, o código parece limpo. Um arranjo de itens que sustentam diferentes estratégias que podem ser encanadas para criar o resultado ideal stream. Na solução mencionada abaixo, lst.stream() converte a lista em Stream tipo de dados e depois Stream.concat(Strem1,Stream2) concatena dois objetos diferentes Stream e depois Stream.collect(collectors.toList) converte o objeto Stream no objeto de 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();
  }
}

Utilize parametrizar construtor para juntar duas listas em Java

List<String> newList = new ArrayList<String>(listOne); irá criar uma lista chamando o construtor de parâmetros que copia a lista dada para o novo objeto de lista e então newList.addAll(listTwo); anexa uma lista (list2) à lista recém 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();
  }
}

Utilize predeclared new array para juntar duas listas em Java

Quando a resultList3 é predefinida ou pode ser feita assim List<String> resultList3; após declarar n lista de resultados, então newList = new ArrayList<String>(list1) inicializará um novo array, copiando elementos da list1 para dentro dela. (list).addAll(list2); anexa os elementos da list2 à 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();
  }
}

Artigo relacionado - Java List