可以使用Java的Stream API来实现这个逻辑。首先,遍历splitIsNotB列表中的每个SplitProductionOrderItem对象,然后判断其productId字段是否存在于releaseTotal的key集合中。如果存在,就根据该key创建一个新的OdsMaterialDocumentItem对象,并将对应的value值设置为quantityInEntryUnit字段的值。

下面是示例代码:

List<OdsMaterialDocumentItem> result = splitIsNotB.stream()
    .filter(item -> releaseTotal.containsKey(item.getProductId()))
    .map(item -> {
        String material = item.getProductId();
        BigDecimal quantityInEntryUnit = releaseTotal.get(material);
        return new OdsMaterialDocumentItem(material, quantityInEntryUnit);
    })
    .collect(Collectors.toList());

其中,OdsMaterialDocumentItem类是根据需求自定义的类,用于存储生成的结果。它的构造方法接收两个参数,分别是material和quantityInEntryUnit。

请根据实际情况调整代码中的类名和字段名

java 已知对象ListSplitProductionOrderItem splitIsNotBMapString BigDecimal releaseTotal当SplitProductionOrderItem的字段productId值与releaseTotal的key值相同的时候将releaseTotal的key和value生成一个新的ListOdsMaterialDocumentItem

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

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