Comment joindre deux listes en Java

Usama Imtiaz 12 octobre 2023
  1. Utilisez Stream pour joindre deux listes en Java
  2. Utilisez le constructeur parameterize pour joindre deux listes en Java
  3. Utilisez predeclared new array pour joindre deux listes en Java
Comment joindre deux listes en Java

Souvent, avant d’entreprendre une procédure, nous devons combiner plusieurs listes en une seule. Il y a plusieurs façons de fusionner deux listes ou de les combiner en de plus grandes listes. Dans cet article, nous examinerons deux façons rapides de fusionner deux listes en Java, que vous pouvez étendre pour fusionner ou appliquer un nombre quelconque de listes. Array-List ou Java-based Linked-List.

Une façon de combiner plusieurs collections est d’utiliser la fonction addAll() de la classe java.util collection, qui vous aide à ajouter du matériel d’une liste à l’autre. Vous pouvez assigner du contenu à autant de listes que vous le souhaitez en utilisant la fonction addAll(), et c’est la façon la plus simple de fusionner plusieurs listes.

D’autres méthodes sont également expliquées pour une meilleure compréhension.

  • Utilisation de la fonction Stream
  • Utilisation de Parameterized Constructor
  • Utilisation de la liste pré-déclarée et de addAll()

Utilisez Stream pour joindre deux listes en Java

Les flux en Java version 8 nous permettent de n’avoir qu’une seule ligne de solution pour la plupart des problèmes, et en même temps, le code semble propre. Un arrangement d’éléments qui sous-tendent différentes stratégies qui peuvent être mises en pipeline pour créer le stream idéal de résultat. Dans la solution mentionnée ci-dessous, lst.stream() convertit la liste en type de données Stream puis Stream.concat(Strem1,Stream2) concatène deux objets Stream différents puis Stream.collect(collectors.toList) convertit l’objet Stream en objet liste.

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

Utilisez le constructeur parameterize pour joindre deux listes en Java

List<String> newList = new ArrayList<String>(listOne); va créer une liste en appelant le constructeur de paramétrage qui copie la liste donnée dans le nouvel objet liste puis newList.addAll(listTwo); ajoute une liste (list2) dans la liste nouvellement déclarée.

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

Utilisez predeclared new array pour joindre deux listes en Java

Lorsque la resultList3 est prédéfinie ou peut être faite comme ceci List<String> resultList3; après avoir déclaré n listes de résultats alors newList = new ArrayList<String>(list1) initialisera le nouveau tableau en y copiant des éléments de list1. (list).addAll(list2); ajoute les éléments de list2 dans 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();
  }
}

Article connexe - Java List