gpt4 book ai didi

java - java lambda 中的每个嵌套

转载 作者:行者123 更新时间:2023-11-30 06:39:33 25 4
gpt4 key购买 nike

这是我的嵌套 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 来实现我的概念。

最佳答案

您可以在每个内部列表的流上使用 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

关于java - java lambda 中的每个嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44623573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com