如何使用Java8特性生成集合?

如何使用Java8特性生成集合?,java,collections,java-8,Java,Collections,Java 8,如果我有一个类Book,里面有一个Page对象的列表,那么如何使用Java 8特性(如流、收集器、lamdas等)生成Page对象的集合。?我知道如何使用Java8之前的技术来实现这一点,但我希望通过一行Java8特性来实现这一点 谢谢。假设一本书籍有一个getPages方法返回一个页面集合,您需要使用该方法来“展平”书籍集合中的页面集合: Stream<Page> pages = books.stream().flatMap(b -> b.getPages().stream(

如果我有一个类
Book
,里面有一个
Page
对象的列表,那么如何使用Java 8特性(如流、收集器、lamdas等)生成
Page
对象的集合。?我知道如何使用Java8之前的技术来实现这一点,但我希望通过一行Java8特性来实现这一点


谢谢。

假设一本
书籍
有一个
getPages
方法返回一个
页面
集合,您需要使用该方法来“展平”书籍集合中的页面集合:

Stream<Page> pages = books.stream().flatMap(b -> b.getPages().stream());
streampages=books.Stream().flatMap(b->b.getPages().Stream());

这就产生了一条小溪;如果您需要一个集合,请使用列表收集器来构建它。

这非常有效,flatMap是缺少的元素。我和forEach在书上的关系到了死胡同。谢谢你的建设性回答。