可以使用Java 8的流式操作来实现这个需求,具体代码如下:

List<OdsMaterialbomItem> realDiff = ... // 假设已经有了 realDiff 列表

double totalQuantity = realDiff.stream()
        .filter(item -> !"026000010003".equals(item.getBillOfMaterialComponent())) // 过滤掉 BillOfMaterialComponent 等于 026000010003 的记录
        .mapToDouble(item -> Double.parseDouble(item.getBillOfMaterialItemQuantity())) // 将 BillOfMaterialItemQuantity 字段转为 double 类型
        .sum(); // 求和

System.out.println("合计数量为:" + totalQuantity);

解释一下代码:

  1. realDiff.stream() 将列表转为 Stream 流。
  2. filter(item -> !"026000010003".equals(item.getBillOfMaterialComponent())) 过滤掉 BillOfMaterialComponent 等于 026000010003 的记录。
  3. mapToDouble(item -> Double.parseDouble(item.getBillOfMaterialItemQuantity())) 将 BillOfMaterialItemQuantity 字段转为 double 类型。
  4. sum() 对转换后的 Stream 流求和。
  5. 最后将合计数量输出
java 8从ListOdsMaterialbomItem realDiff中获取字段BillOfMaterialComponent不等于026000010003的BillOfMaterialItemQuantity并合计字段Material是唯一的字段quantityInEntryUnit是String类型

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

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