Java Stream flatmap
Dans ce tutoriel nous allons découvrir comment utiliser la méthode Stream.flatmap() lorsque nous travaillons avec les Streams en Java.
La méthode Stream flatMap() qui est utilisée pour aplatir un flux de collections en un flux d’éléments combinés de toutes les collections.
L’opération flatMap() a pour effet d’appliquer une transformation un-à-plusieurs aux éléments du flux, puis d’aplatir les éléments résultants en un nouveau flux.
Fonctionnement de flatMap():
{ {1,2}, {3,4}, {5,6} } -> flatMap() -> {1,2,3,4,5,6} { {'a','b'}, {'c','d'}, {'e','f'} } -> flatMap() -> {'a','b','c','d','e','f'}
Exemple: Convertir une liste de listes en une seule liste
import java.util.*; import java.util.stream.*; public class Main { public static void main(String[] args) { List<Integer> l1 = Arrays.asList(1,1,1); List<Integer> l2 = Arrays.asList(2,2,2); List<Integer> l3 = Arrays.asList(3,3,3); List<List<Integer>> liste = Arrays.asList(l1, l2, l3); List<Integer> res = liste.stream() .flatMap(x -> x.stream()) .collect(Collectors.toList()); System.out.println(res); } }
Sortie:
[1, 1, 1, 2, 2, 2, 3, 3, 3]