如果可能,我想替换以下代码以利用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>
有人可以建议通过lambda做到这一点的最佳方法吗?非常感谢。

最佳答案

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

10-01 00:26