Bonjour,
j'ai dans un code que j'essaie de simplifier avec java, pas mal de méthode qui ressemblent à ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 List<Y> resultat = new ArrayList<Y>(); for (X x : collectionDeX){ for (Y y: x.getCollectionY()) if (y.uneCondition()) resultat.add(y); } return resultat;
instinctivement, avec stream, j'essaierais comme ceci:
Évidement, cette méthode flatten n'existe pas. Existe-t-il quelque chose dans Stream pour gérer deux boucles imbriquée en un flux unique?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 return collectionDeX.stream() .flatten(x -> x.getCollectionY()) .filter(Y::uneCondition) .collect(Collectors.toList());
Partager