Conversion de Stream en Liste en Java

Mohammad Irfan 12 octobre 2023
  1. Convertir un Stream en liste à l’aide de la méthode collect() en Java
  2. Convertir un Stream en liste à l’aide de la méthode toCollection() en Java
  3. Convertir un Stream en liste à l’aide de la méthode forEach() en Java
  4. Convertir un Stream en liste à l’aide de la méthode toArray() en Java
Conversion de Stream en Liste en Java

Ce tutoriel présente la conversion du Stream en une liste en Java.

Un Stream est une collection d’objets. Un Stream ne stocke aucune donnée et n’est donc pas une structure de données.

Le Stream a été ajouté à la version Java 8, tandis qu’une liste est une interface qui stocke des collections ordonnées. Dans ce didacticiel, nous examinerons la conversion d’un Stream en liste.

Java a les moyens suivants par lesquels nous pouvons accomplir notre tâche :

  • Convertir en utilisant la méthode collect()
  • Convertir en utilisant la méthode toCollection()
  • Convertir en utilisant la méthode forEach()
  • Convertir en utilisant la méthode toArray()

Convertir un Stream en liste à l’aide de la méthode collect() en Java

L’opération Stream collect() est une opération terminale. Une opération terminale signifie que le Stream est consommé et ne peut plus être utilisé après cette opération.

La syntaxe de cette méthode est :

collect(Collector<? super T, A, R> collector)

Cette méthode prend un objet Collector comme argument.

La classe Collector est utilisée pour collecter les éléments du Stream dans une collection. Cette classe a la méthode toList(), qui convertit le Stream en une liste.

Regardons maintenant un exemple de code :

import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class SimpleTesting {
  public static void main(String args[]) {
    // declaring a stream
    Stream<String> furnitures =
        Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");

    // changing stream to list
    List<String> furniture_list = furnitures.collect(Collectors.toList());

    // printing the list
    for (String furniture : furniture_list) {
      System.out.println(furniture);
    }
  }
}

Production :

chair
dinning table
study table
coffee table
sofa

Convertir un Stream en liste à l’aide de la méthode toCollection() en Java

Cet exemple est similaire au précédent sauf que nous avons utilisé la méthode Collector.toList() au lieu de la méthode Collectors.toCollection().

La classe Collector a une méthode appelée toCollection() qui renvoie un Collector qui rassemble les éléments d’entrée dans une nouvelle Collection dans l’ordre où ils ont été rencontrés. Regardez l’exemple de code ci-dessous :

import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class SimpleTesting {
  public static void main(String args[]) {
    // declaring a stream
    Stream<String> furnitures =
        Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");

    // changing stream to list
    List<String> furniture_list = furnitures.collect(Collectors.toCollection(ArrayList::new));

    // printing the list
    for (String furniture : furniture_list) {
      System.out.println(furniture);
    }
  }
}

Production :

chair
dinning table
study table
coffee table
sofa

Convertir un Stream en liste à l’aide de la méthode forEach() en Java

Dans cet exemple, nous avons d’abord créé une ArrayList vide puis utilisé la méthode forEach() pour ajouter chaque élément Stream à la List un par un. Le Stream a une méthode appelée forEach() qui s’exécute sur tous les éléments du Stream d’entrée.

Regardez l’exemple de code ci-dessous :

import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class SimpleTesting {
  public static void main(String args[]) {
    // declaring a stream
    Stream<String> furnitures =
        Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");

    // declaring an empty arraylist
    ArrayList<String> furniture_list = new ArrayList<>();

    // adding elements one by one
    furnitures.forEach(furniture_list::add);

    // printing the list
    for (String furniture : furniture_list) {
      System.out.println(furniture);
    }
  }
}

Production :

chair
dinning table
study table
coffee table
sofa

Convertir un Stream en liste à l’aide de la méthode toArray() en Java

Dans cet exemple, nous avons d’abord converti le Stream en un tableau à l’aide de la méthode toArray(). Après cela, nous avons converti le tableau nouvellement créé en une liste en utilisant la méthode asList() pour obtenir une liste.

Regardez le code ci-dessous :

import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class SimpleTesting {
  public static void main(String args[]) {
    // declaring a stream
    Stream<String> furnitures =
        Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");

    // converting stream to array
    String[] furniture_array = furnitures.toArray(String[] ::new);

    // converting array to list
    List<String> furniture_list = Arrays.asList(furniture_array);

    // printing the list
    for (String furniture : furniture_list) {
      System.out.println(furniture);
    }
  }
}

Production :

chair
dinning table
study table
coffee table
sofa

Article connexe - Java Stream

Article connexe - Java List