java 8从ListOdsMaterialbomItem realDiff中获取字段BillOfMaterialComponent不等于026000010003的BillOfMaterialItemQuantity并合计字段Material是唯一的字段quantityInEntryUnit是String类型
可以使用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);
解释一下代码:
realDiff.stream()将列表转为 Stream 流。filter(item -> !"026000010003".equals(item.getBillOfMaterialComponent()))过滤掉 BillOfMaterialComponent 等于 026000010003 的记录。mapToDouble(item -> Double.parseDouble(item.getBillOfMaterialItemQuantity()))将 BillOfMaterialItemQuantity 字段转为 double 类型。sum()对转换后的 Stream 流求和。- 最后将合计数量输出
原文地址: http://www.cveoy.top/t/topic/huGS 著作权归作者所有。请勿转载和采集!