这是我的嵌套foreach代码,
vehicleList.forEach(vehicle->{
vehicle.getRegionList().forEach(regionList->{
// Some DB functions here and passing below details to every iteration
// vehicle.getVehicleId();
// regionList.getRegionId();
// regionList.getRegionType();
});
});
这里我使用了两个forEach循环。是否有可能在单个forEach中实现我的概念。
答案 0 :(得分:1)
您可以在每个内容列表的流中使用flatMap
,然后map
:
vehicleList.stream()
.flatMap(v -> v.getRegionList()
.stream()
.map(r -> new AbstractMap.SimpleImmutableEntry<>(v, r)))
.forEach(e -> {
Vehicle key = e.getKey();
Region region = e.getValue();
})
理想的管道结构在很大程度上取决于您尝试实现的目标:由于您提到您正在进行数据库操作,因为检查异常,流可能不是最佳选择。
最后请注意,使用forEach
通常应该是最后的选择,因为Consumer
的使用意味着副作用,大多数用例可以重构为不使用forEach
。