如果可能,我想替换以下代码以利用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());