我有一个Car类,每个Car类都有一个Wheel类的列表,每个Wheel类都有一个整数字段airPressure。
public class Car {
private List<Wheel> wheels;
public List<Wheel> getWheels() {
return wheels;
}
}
public class Wheel {
private int airPressure;
public int getAirPressure() {
return airPressure;
}
}
现在,我有了“汽车”列表,并且必须过滤掉所有车轮气压大于defaultValue的所有汽车。我正在过滤汽车,但我需要遍历所有车轮。现在我有这样的代码:
I have: List<Cars> cars, int defaultValue
List<Cars> filteredCars = cars.stream()
.filter(car -> car.getWheels().get(0).getAirPressure() < defaultValue)
.filter(car -> car.getWheels().get(1).getAirPressure() < defaultValue)
.filter(car -> car.getWheels().get(2).getAirPressure() < defaultValue)
...
过滤汽车时如何迭代每个汽车的车轮?
最佳答案
这将仅选择所有车轮气压低于defaultValue
的汽车:
List<Car> filteredCars = cars.stream()
.filter(car -> car.getWheels()
.stream()
.allMatch(wheel -> wheel.getAirPressure() < defaultValue))
.collect(Collectors.toList());
关于java - 如何在Java 8中的lambda过滤器流中迭代列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45874212/