使用 Java 8 的流操作可以轻松过滤 SplitProductionOrderItem 列表,仅保留 productIdbomItems 列表中 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 方法检查是否有任何一个 OdsMaterialbomItemBillOfMaterialComponentSplitProductionOrderItemproductId 相匹配。

最后,使用 collect 方法将过滤后的结果收集到一个新的列表中。

这种方法能够有效地过滤 SplitProductionOrderItem 列表,并保留与 bomItems 列表中 BillOfMaterialComponent 字段值相同的 productId 的条目。

Java 过滤 SplitProductionOrderItem 列表,保留与 bomItems 中 BillOfMaterialComponent 相同的 productId

原文地址: https://www.cveoy.top/t/topic/qzfH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录