java - 从对象列表中获取属性的聚合列表(Java 8)
问题描述
我有一个类Division
,它的属性列表Section
如下
class Division {
private List<Section> sections;
// respective getters and setters
}
假设我有一个部门列表,并且我想获得一个部门的汇总列表,我知道可以使用以下常规方法来完成。
List<Division> divisions = getDivisions();
List<Section> sections = new ArrayList<>();
for (Division division : divisions) {
sections.addAll(division.getSections());
}
我想知道是否有任何方法可以使用 Java-8 流来做同样的事情。
解决方案
您可以使用flatMap
运算符来执行此操作。这是它的外观。
List<Section> sections = divisions.stream()
.flatMap(d -> d.getSections().stream())
.collect(Collectors.toList());
推荐阅读
- react-native - 嵌套堆栈导航器标头配置
- java - 如何将数据作为 thymeleaf 形式的哈希映射传输到控制器
- python - 第二次进入时输入小部件中的自动输入问题
- typescript - 调用 lodash `mapKeys` 的函数的类型声明
- sql-server - 将具有代理键的数据库拆分为物理层和逻辑层
- python - 如何调查我的 node-gyp “构建错误”?
- django - 在过滤选项中的 django rest 框架中没有找到结果
- java - 2 个类,1 个 Java 中的 Junit 测试错误。错误信息
- python - 在 Pandas 中用 0(零)填充缺失的日期
- azure - 如何在 azuredeploy 中使用选项和设置