Rejoindre des listes en Java sans modifier les originaux
En Java, combiner plusieurs listes en une nouvelle est une tâche courante. Cependant, l'approche mentionnée dans la question nécessite une modification des listes d'origine, ce qui n'est pas toujours souhaitable.
Concaténation de flux Java 8
Java 8 a introduit l'API Stream , qui fournit un moyen plus concis et immuable de manipuler les collections. Pour la concaténation de listes, vous pouvez utiliser la méthode concat() pour fusionner les flux de deux listes :
List<String> newList = Stream.concat(listOne.stream(), listTwo.stream()) .collect(Collectors.toList());
Cette méthode crée une nouvelle liste sans altérer les originaux, car elle opère sur des flux qui sont essentiellement des wrappers autour les collections sources.
Java 16 toList() Amélioration
Depuis Java 16 À partir de maintenant, une approche plus simple est disponible en utilisant la méthode toList() mise à jour :
List<String> newList = Stream.concat(listOne.stream(), listTwo.stream()).toList();
Cela simplifie le code en éliminant le besoin d'une opération collect(), rationalisant ainsi davantage le processus de concaténation de liste.
Bonus : Version JDK 1.3
Pour JDK 1.3, vous pouvez utiliser les éléments suivants technique :
List<String> newList = new ArrayList<String>(listOne.size() + listTwo.size()); newList.addAll(listOne); newList.addAll(listTwo);
Cette méthode crée une nouvelle ArrayList avec une taille qui peut accueillir les deux listes d'origine, puis ajoute les éléments de chaque liste. Bien que ce ne soit pas aussi concis que les approches basées sur Stream, cela fournit toujours un résultat immuable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!