Aplatir les Stream en java 8
Bonjour,
j'ai dans un code que j'essaie de simplifier avec java, pas mal de méthode qui ressemblent à ça:
Code:
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:
Code:
1 2 3 4
| return collectionDeX.stream()
.flatten(x -> x.getCollectionY())
.filter(Y::uneCondition)
.collect(Collectors.toList()); |
É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?