Unisciti a due liste in Java

Usama Imtiaz 12 ottobre 2023
  1. Usa Stream per unire due liste in Java
  2. Usa parametrizza costruttore per unire due liste in Java
  3. Usa nuovo array predichiarato per unire due liste in Java
Unisciti a due liste in Java

Spesso, prima di intraprendere qualsiasi procedura, dobbiamo combinare più liste in uno. Esistono diversi modi per unire due liste o combinarli in liste più grandi. In questo articolo esamineremo due modi rapidi per unire due liste in Java, che puoi estendere ulteriormente per unire o applicare un numero qualsiasi di liste. Elenco di array o lista collegato basato su Java.

Un modo per combinare molte collezioni è usare la funzione addAll() della classe java.util collection, che ti aiuta ad aggiungere materiale da una lista all’altra. Puoi assegnare i contenuti a tutte le liste che vuoi usando la funzione addAll(), ed è il modo più semplice per unire molte liste.

Inoltre, vengono spiegati anche altri metodi per una migliore comprensione.

  • Uso di Stream
  • Uso del Costruttore parametrizzato
  • Uso di Elenco predichiarato e addAll()

Usa Stream per unire due liste in Java

Gli stream in Java versione 8 ci consentono di avere solo una soluzione a una linea per la maggior parte dei problemi e, allo stesso tempo, il codice sembra pulito. Una disposizione di elementi che sono alla base di diverse strategie che possono essere pipeline per creare il Stream di risultati ideali. Nella soluzione menzionata sotto, lst.stream() converte l’lista nel tipo di dati Stream quindi Stream.concat(Strem1,Stream2) concatena due diversi oggetti Stream quindi Stream.collect(collectors.toList) converte l’oggetto Stream nell’oggetto 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 parametrizza costruttore per unire due liste in Java

List<String> newList = new ArrayList<String>(listOne); creerà una lista chiamando il costruttore di parametrizzazione che copia la lista data nel nuovo oggetto lista quindi newList.addAll(listTwo); accoda una lista (list2) nella lista appena dichiarata.

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 nuovo array predichiarato per unire due liste in Java

Quando il resultList3 è predefinito o può essere fatto in questo modo List<String> resultList3; dopo aver dichiarato n lista di risultati allora newList = new ArrayList<String>(list1) inizializzerà il nuovo array copiando gli elementi di list1 in esso. (list).addAll(list2); aggiunge gli elementi di 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();
  }
}

Articolo correlato - Java List