java - 如何使用 Java 8 特性生成集合?

标签 java collections java-8

<分区>

如果我有一个 Book 类,其中有一个 Page 对象列表,我如何生成 Page 对象的集合给定一组 Book 对象,使用 Java 8 特性,如 Streams、Collectors、lamdas 等?我知道如何使用 Java 8 之前的技术来做到这一点,但我希望看到它使用 Java 8 特性的一行来完成。

谢谢。

最佳答案

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

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

这会产生一个流;如果您需要一个集合,请使用列表收集器来构造它。

关于java - 如何使用 Java 8 特性生成集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41654198/

相关文章:

Java将IP+端口转换为长整型并返回

scala - 如何将“丰富我的图书馆”模式应用于Scala集合?

java - 何时以及为何使用 JumboEnumSet

java - 将多个数组缩减为一个列表

java - 比较然后比较给出编译错误

java - 仅当相同字符串出现两次时才匹配正则表达式

java - 更新文本文件而不丢失信息

java - JPA - 为什么我在数据库中的每一行看到两个实体实例?

python - Python 中的函数 "/"参数

java - 将日期从远程源转移到本地