我有一个if语句嵌套在for循环内,而这两个都嵌套在另一个for循环内。我想提出一些建议,如果可以使用流API对其进行替换,以及是否应该对其进行替换或保留原样。
我一直在寻找解决方案,但是我想要的东西似乎更加复杂,因为我需要基于与另一个列表匹配的ID来修改列表。
for (User user : userList) {
for (Vehicle vehicle : vehicleList) {
if (user.getId().equals(vehicle.getUserID())) {
user.addVehicleToList(vehicle);
}
}
}
使用流产生相同的结果。
答案 0 :(得分:5)
如果要使用Stream API,请使用以下代码。
userList.forEach(user -> {
vehicleList.stream()
.filter(vehicle -> vehicle.getUserID().equals(user.getId()))
.forEach(user::addVehicleToList);
});
答案 1 :(得分:0)
我想您正在寻找类似的东西
userList.forEach(
user -> vehicleList.stream()
.filter(vehicle -> vehicle.getUserID().equals(user.getId()))
.forEach(user::addVehicleToList)
);