Concaténer la liste en Java
-
Concaténation de listes à l’aide de la méthode
cacat()
en Java 8 -
Concaténation de listes à l’aide de la méthode
Stream.of()
dans Java 8
Une collection ordonnée d’éléments pouvant augmenter de manière dynamique est connue sous le nom de collection List
. Il est représenté comme un élément node
et chaque nœud contient une référence
au nœud suivant et à l’élément. Les opérations que nous pouvons effectuer sur une collection de listes incluent la traversée d’éléments, l’insertion, la mise à jour et la suppression à l’aide des index.
Java fournit une interface List
qui propose différentes méthodes pour son fonctionnement. Les multiples implémentations de la liste incluent ArrayList
, LinkedList
et SortedList
. Il existe différentes propriétés de la liste qui peuvent :
- Devenir valeurs en double dans la liste.
- Stocker des éléments nuls.
- Croître dynamiquement, contrairement aux tableaux dont la taille est définie.
Le code ci-dessous illustre comment vous pouvez créer une liste de concaténation Java :
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ListConcatenation {
public static void main(String[] args) {
List<String> birds_list =
Stream.of("pigeon", "crow", "squirrel").collect(Collectors.toList()); // Java 8
List<String> animal_list = List.of("cat", "dog", "rabbit"); // Java 9
System.out.println("Way 1");
List<String> stringArrayList = new ArrayList<String>(); // Java7
stringArrayList.addAll(birds_list);
stringArrayList.addAll(animal_list);
System.out.println(stringArrayList);
System.out.println("Way 2");
List<String> newList =
Stream.concat(birds_list.stream(), animal_list.stream()).collect(Collectors.toList());
System.out.println(newList);
System.out.println("Way 3");
List<String> newList2 =
Stream.of(birds_list, animal_list).flatMap(Collection::stream).collect(Collectors.toList());
System.out.println(newList2);
}
}
Dans le bloc de code ci-dessus, les deux premières lignes initialisent les listes que nous voulons concaténer.
La première façon d’initialiser une liste est de donner des éléments au moment de la déclaration elle-même. Ainsi selon la méthodologie Java 8
, l’interface Stream
s’habitue. Les flux agissent comme un wrapper de la source de données et fournissent des méthodes pour exploiter et traiter les données. La méthode statique of
prend et crée le flux séquentiel d’éléments fournis en tant que paramètres et renvoie le flux d’éléments. La chaîne d’opérations que nous effectuons est en Java 8. La méthode collect
est une opération terminale qui collecte le Stream
fourni après réduction.
Une autre façon d’initialiser la liste est d’utiliser la version Java 9
. Il fournit un moyen pratique d’initialiser une liste en utilisant la méthode de fabrique statique List.of
qui crée des listes immuables.
Enfin, un objet combiné List
est initialisé traditionnellement en utilisant la version Java 7
. La méthode addAll()
est invoquée à l’aide de l’instance newList
. La méthode ajoute la collection spécifiée à la collection identifiée à sa fin. Il renvoie true
lorsque l’ajout de la liste est réussi. La méthode peut lever NullPointerException
lorsque la collection de liste passée est null.
L’instance de liste combinée contient maintenant la collection birds_list
. De même, l’instance animal_list
est ajoutée à stringArrayList
. Et enfin, après avoir imprimé la liste, il crée une collection séquentielle ajoutée l’une après l’autre.
Ci-dessous se trouve la sortie console du bloc de code :
Way 1 [pigeon, crow, squirrel, cat, dog, rabbit] Way 2 [pigeon, crow, squirrel, cat, dog, rabbit]
Way 3 [pigeon, crow, squirrel, cat, dog, rabbit]
Concaténation de listes à l’aide de la méthode cacat()
en Java 8
L’illustration utilise le même bloc de code pour montrer la méthode concat()
- elle est statique dans l’interface Stream
. Elle est considérée comme une opération intermédiaire
ou une initialisation paresseuse car elle fonctionne lorsqu’une opération de terminal est appliquée sur la fonction. La méthode concat()
prend deux flux à concaténer. Et il renvoie la liste combinée des deux flux que nous passons en paramètres. Sur cette méthode, la fonction collect
est invoquée pour convertir le flux au format souhaité. La fonction prend le collecteur en argument, et dans notre cas, la fonction Collectors.toList()
est passée pour réduire le flux dans le type List
.
La sortie serait similaire au premier bloc de code et serait imprimée dans le journal de la console ci-dessus sous l’instruction Way 2
.
Concaténation de listes à l’aide de la méthode Stream.of()
dans Java 8
Comme mentionné ci-dessus, of
est une méthode statique dans l’interface Stream
qui prend des éléments. Ces éléments peuvent donc être des types de données primitifs ou des classes collections
. Les collections d’oiseaux et d’animaux passent pour des arguments. Maintenant, la méthode flatMap
est invoquée dans la chaîne d’appels, et l’utilisation est d’effectuer le traitement et de transformer le flux passé.
La méthode flatMap
prend une Function
comme paramètre. La méthode applique des transformations sur les éléments et aplatit le résultat. Dans ce cas, Collection::stream
est passé pour convertir les éléments en un seul flux, qui est renvoyé après traitement. Le flux est désormais collecté selon la méthode collect
.
La sortie est la même que celle du bloc de console ci-dessus avec le titre Way 3
.
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn