Comment joindre deux listes en Java
-
Utilisez
Stream
pour joindre deux listes en Java -
Utilisez le constructeur
parameterize
pour joindre deux listes en Java -
Utilisez
predeclared new array
pour 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 deaddAll()
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();
}
}