使用 lambda 遍历多个嵌套列表



如何在已经使用 lambda 遍历另一个列表的同时遍历一个列表? 我有 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;
}

我想遍历所有汽车车轮的每一个东西。 我尝试这样做,但它不起作用。

您需要将其展平,因此flatMap就可以了

List<Clean> cleanList =
somethings.stream()
.flatMap(something -> car.wheels.stream().map(wheel -> something.clean(car, wheel)))
.collect(Collectors.toList());

最新更新