【发布时间】:2021-02-22 13:38:46
【问题描述】:
将嵌套的 for each 循环转换为流时遇到问题。
for (PickOrder pickOrder : pickOrders) {
for (PickOrderLine pickOrderLine : pickOrder.getPickOrderLines()) {
if (pickOrderLine.getQuantity() > quantityOnHand.get(pickOrderLine.getProductCode())) {
return productCollection.findByCode(pickOrderLine.getProductCode());
}
}
}
这是我的 for each 循环,我想将其转换为流。我试过了:
pickOrders.stream()
.flatMap(pickOrder -> pickOrder.getPickOrderLines().stream())
.filter(pickOrderLine -> pickOrderLine.getQuantity() > quantityOnHand.get(pickOrderLine.getProductCode()))
.findFirst();
这种方式不起作用,我非常感谢您的提示和帮助!谢谢
【问题讨论】:
-
它应该可以工作。您在第二次 sn-p 中究竟返回了什么?
标签: java lambda java-stream