Concaténer la liste en Java

Rashmi Patidar 12 octobre 2023
  1. Concaténation de listes à l’aide de la méthode cacat() en Java 8
  2. Concaténation de listes à l’aide de la méthode Stream.of() dans Java 8
Concaténer la liste en Java

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 Patidar avatar Rashmi Patidar avatar

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

Article connexe - Java List