首页 > 解决方案 > 每个调用方法和 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 建议最好的方法吗?非常感谢。

标签: javalambdacollectionsjava-stream

解决方案


List<Long> myIds = myObjects.stream()
    .map(Obj::getId)
    .map(daoClass::findItemsById)
    .flatMap(Collection::stream)
    .collect(Collectors.toList());

推荐阅读