Maison >Java >javaDidacticiel >Comment puis-je concaténer deux listes Java sans modifier les originaux et en utilisant uniquement le JDK ?

Comment puis-je concaténer deux listes Java sans modifier les originaux et en utilisant uniquement le JDK ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-15 06:02:14485parcourir

How Can I Concatenate Two Java Lists Without Modifying the Originals and Using Only the JDK?

Joindre des listes en Java sans modification ni bibliothèques externes

Lors de la fusion de deux listes, il est souvent souhaitable d'éviter de modifier les originaux en utilisant uniquement le JDK. Voici une analyse complète des différentes approches :

Méthode originale :

Comme présenté dans la question, créer une nouvelle liste, copier des éléments des deux listes d'entrée et les ajouter vers la nouvelle liste est une méthode simple :

List<String> newList = new ArrayList<>();
newList.addAll(listOne);
newList.addAll(listTwo);

JDK 1.3 Version :

Pour la compatibilité Java 1.3, on peut utiliser la méthode Iterator.addAll :

List<String> newList = new ArrayList<>();
newList.addAll(listOne);
newList.addAll(listTwo.iterator());

Concaténation de flux Java 8 :

En Java 8 et versions ultérieures, la concaténation de flux offre une solution concise et efficace alternative :

List<String> newList = Stream.concat(listOne.stream(), listTwo.stream())
                             .collect(Collectors.toList());

Méthode Java 16 toList :

Java 16 introduit la méthode toList, qui simplifie la collecte de flux :

List<String> newList = Stream.concat(listOne.stream(), listTwo.stream()).toList();

Solution One-Line :

La combinaison des approches précédentes permet une seule ligne :

List<String> newList = new ArrayList<>().addAll(listOne).addAll(listTwo);

Remarque :

Toutes ces méthodes satisfont aux conditions spécifiées de ne pas modifier les listes d'origine, d'utiliser uniquement le JDK et de ne pas s'appuyer sur les bibliothèques externes. Les solutions fournies vont des techniques classiques aux fonctionnalités Java modernes, offrant une flexibilité basée sur la compatibilité des plates-formes et les préférences de codage.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn