如何使用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在书上的关系到了死胡同。谢谢你的建设性回答。