java如何使用lambda/java8迭代递归列表
我正在寻找帮助,我试图迭代具有订单list
(OrderItem
)的产品,该订单也包含sub-OrderList
(OrderItem
),并且该产品内部也包含结构(n次)
如何递归迭代所有订单,并搜索已完成的操作,并将所有已完成的订单添加到列表中
我已经完成了BFS/DFS,但正在寻找使用java函数编程的最佳优化解决方案。蒂亚
主要产品
Class ProductOrder
{
private List<OrderItem> orderItem = new ArrayList<OrderItem>();
}
产品中的子项
里面也有n个子项
Class OrderItem{
private String id;
private String state;
private Integer quantity;
private List<OrderItem> orderItem = new ArrayList<OrderItem>();
}
# 1 楼答案
通过将以下方法添加到
OrderItem
,可以使用Stream API解决问题:您还可以用一般方法解决此问题:
如果此解决方案不够快,请创建
forEach
方法,它的工作速度会快一点,但使用此方法会更困难,因为您无法在它之后执行管道操作: