java - 使用 lambda 遍历多个嵌套列表
问题描述
如何在已经使用 lambdas 遍历另一个列表的同时遍历一个列表?我有 1 个汽车对象,一个我正在遍历的 Something 对象列表,在此过程中我需要遍历每个 Wheel 对象。输出是一个不同对象 Clean 的列表。
Car car = new Car();
List<Something> somethings = new ArrayList<Something>();
//say we have multiple items in this List
List<Clean> cleanList =
somethings.stream()
.map(something -> {
return car.wheels.stream().map(wheel -> something.clean(car, wheel)); })
.collect(Collectors.toList());
对于以下对象,
class Car {
String carId;
String carName;
List<Wheel> wheels;
}
class Wheel {
String wheelId;
String wheelType;
}
class Something {
String somethingId;
String somethingType;
public Clean clean(Car car, Wheel wheel) {
return new Clean();
}
}
class Clean {
String cleanId;
String cleanType;
}
我想遍历所有车轮的所有东西。我试过这样做,但它不起作用。
解决方案
你需要把它弄平,所以aflatMap
会做
List<Clean> cleanList =
somethings.stream()
.flatMap(something -> car.wheels.stream().map(wheel -> something.clean(car, wheel)))
.collect(Collectors.toList());
推荐阅读
- css - 打印页眉和页脚的媒体查询
- html - 如何在兄弟 div 留下的剩余空间中居中 div
- c++ - 谷歌 C++ 风格指南包括订单
- javascript - 关于 async/await 与 Promises 和事件循环的性能问题
- reactjs - ReactJs Material UI 随机问题
- javascript - 是否可以在组件文件中重新创建 ngIf 和异步管道行为?
- c# - 数据包未被读取 TCP
- python - 从 Bearer 类型令牌获取 Google OAuth2 凭据或刷新令牌?
- android - 谷歌地图给了我空指针异常,而它不应该
- php - 在 Woocommerce 中更新状态之前获取最后一个旧订单状态