Stream#flatMapを使用する。
public class Foo {
private List<Bar> bars;
// getter/setter/constructor
}
public class Bar {
private String piyo;
// getter/setter/constructor
}
Fooリストから、ネストされたBarリストのフィールドpiyoのリストを作成する。
List<Foo> fooList
= Arrays.asList(new Foo(Arrays.asList(new Bar("piyo1"), new Bar("piyo2"))),
new Foo(Arrays.asList(new Bar("piyo3"), new Bar("piyo4"))));
List<String> piyoList
= fooList.stream().flatMap(foo -> foo.getBars().stream())
.map(Bar::getPiyo).collect(Collectors.toList());
System.out.println(piyoList); // piyo1, piyo2, piyo3, piyo4