[英]Traverse through multiple nested lists using lambda
How to traverse through a list while already traversing through another list using lambdas?如何在已经使用 lambdas 遍历另一个列表的同时遍历一个列表? I have 1 car Object, a list of Something objects which I am traversing and while doing that I need to traverse through every Wheel object.
我有 1 辆车 Object,这是我正在遍历的一些对象的列表,在执行此操作时,我需要遍历每个 Wheel object。 The output is a list of a different object Clean.
output 是不同 object 清洁的列表。
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());
For the following Objects,对于以下对象,
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;
}
I want to traverse through every Something for all Wheels of the Car.我想遍历所有车轮的所有东西。 I tried doing this but it doesn't work.
我试过这样做,但它不起作用。
You would need to flatten it, so a flatMap
will do您需要将其展平,因此可以使用
flatMap
List<Clean> cleanList =
somethings.stream()
.flatMap(something -> car.wheels.stream().map(wheel -> something.clean(car, wheel)))
.collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.