Java 8 Lambda - 两个列表的交集
Java 8 Lambda - 两个列表的交集
我正在尝试根据某些条件和一些步骤,找到两个列表的交集。但在学习阶段找不到方法:)
Double totalAmount = 0.00d; Double discount = 0.00d; ListorderLineEntryList = orderEntry.getOrderReleases().stream() .flatMap(orderReleaseEntry -> orderReleaseEntry.getOrderLines().stream()) .filter(orderLineEntry -> orderLineEntry.getStatus().equals("PP") || orderLineEntry.getStatus().equals("PD")) .collect(Collectors.toList()); for (OrderLineEntry orderLineEntry : orderLineEntryList) { for (SplitLineEntry splitLineEntry : splitReleaseEntry.getLineEntries()) { if (splitLineEntry.getOrderLineId().equals(orderLineEntry.getId()) && !splitLineEntry.getStatusCode().equals("PX")) { totalAmount += orderLineEntry.getFinalAmount(); discount += orderLineEntry.getCouponDiscount() == null ? 0.00d : orderLineEntry.getCouponDiscount(); } } }
正如你所看到的,逻辑很简单:根据一些过滤条件从订单中获取所有项目,并与另一个列表取交集,然后进行一些操作。