Java 过滤 SplitProductionOrderItem 列表,保留与 bomItems 中 BillOfMaterialComponent 相同的 productId
使用 Java 8 的流操作可以轻松过滤 SplitProductionOrderItem 列表,仅保留 productId 与 bomItems 列表中 BillOfMaterialComponent 字段值相同的条目。
首先,使用 filter 方法对 splitIsB 进行过滤。对于每个 SplitProductionOrderItem,使用 anyMatch 方法来检查是否存在一个与 bomItems 中任何一个 OdsMaterialbomItem 匹配的 productId 值。
以下示例代码展示了如何实现这一过滤操作:
List<SplitProductionOrderItem> filteredSplitIsB = splitIsB.stream()
.filter(splitItem -> bomItems.stream()
.anyMatch(bomItem -> bomItem.getBillOfMaterialComponent().equals(splitItem.getProductId())))
.collect(Collectors.toList());
这段代码使用了两个嵌套的流操作:
- 外部流对
splitIsB中的每个SplitProductionOrderItem进行过滤。 - 内部流对
bomItems中的每个OdsMaterialbomItem进行匹配。
使用 anyMatch 方法检查是否有任何一个 OdsMaterialbomItem 的 BillOfMaterialComponent 与 SplitProductionOrderItem 的 productId 相匹配。
最后,使用 collect 方法将过滤后的结果收集到一个新的列表中。
这种方法能够有效地过滤 SplitProductionOrderItem 列表,并保留与 bomItems 列表中 BillOfMaterialComponent 字段值相同的 productId 的条目。
原文地址: https://www.cveoy.top/t/topic/qzfH 著作权归作者所有。请勿转载和采集!