Est-il possible en Java 8 d'écrire quelque chose comme ceci:
List<A> aList = getAList();
List<B> bList = new ArrayList<>();
for(A a : aList) {
bList.add(a.getB());
}
Je pense que cela devrait être un mélange des choses suivantes:
aList.forEach((b -> a.getB());
ou
aList.forEach(bList::add);
Mais je ne peux pas mélanger ces deux pour obtenir la sortie souhaitée.
Voici quelques façons
aList.stream().map(A::getB).forEach(bList::add);
// or
aList.forEach(a -> bList.add(a.getB()));
ou vous pouvez même créer bList()
à la volée:
List<B> bList = aList.stream().map(A::getB).collect(Collectors.toList());