java - 每个调用方法和 addAll 的 Java 8 lambda
问题描述
如果可能,我想替换以下代码以利用 Java 8 流:
final List<Long> myIds = new ArrayList<>();
List<Obj> myObjects = new ArrayList<>();
// myObject populated...
for (final Obj ob : myObjects) {
myIds.addAll(daoClass.findItemsById(ob.getId()));
}
daoClass.findItemsById
返回List<Long>
任何人都可以通过 lambdas 建议最好的方法吗?非常感谢。
解决方案
List<Long> myIds = myObjects.stream()
.map(Obj::getId)
.map(daoClass::findItemsById)
.flatMap(Collection::stream)
.collect(Collectors.toList());
推荐阅读
- php - 比较时间戳和mysql中的时间戳
- cassandra - Cassandra 插入 JSON 会创建墓碑吗?
- keras - 在keras中重用函数的权重
- python - 使用 Beautiful Soup 抓取站点地图索引 URL 以获取状态码
- ruby-on-rails - Rails.env 的 Rails elsif 块
- javascript - 如何在反应 js 中获得价值
- spring-boot - 如何在 Spring Controller @RequestParam 的 MutualExclusiveFields(电子邮件或移动设备)上应用自定义验证?
- php - 与 php 的循环链接给出了超出阈值的 cpu 使用错误
- node.js - Node.js LTS 版本可以支持使用最新当前版本下载的全局包吗?
- r - 如何在移动到R中for循环的下一行之前填充所有列?