public List sumQuantityByUnit(List realDiff) { Map<String, BigDecimal> unitQuantityMap = new HashMap<>(); for (OdsMaterialbomItem item : realDiff) { String unit = item.getUnit(); BigDecimal quantity = item.getQuantity(); if (unitQuantityMap.containsKey(unit)) { BigDecimal prevQuantity = unitQuantityMap.get(unit); BigDecimal newQuantity = prevQuantity.add(quantity); unitQuantityMap.put(unit, newQuantity); } else { unitQuantityMap.put(unit, quantity); } } List result = new ArrayList<>(); for (String unit : unitQuantityMap.keySet()) { BigDecimal quantity = unitQuantityMap.get(unit); OdsMaterialbomItem item = new OdsMaterialbomItem(); item.setUnit(unit); item.setQuantity(quantity); result.add(item); } return result;

java 8将字段unit相同的行上的quantity相加并且quantity是BigDecimal类型不能损失精度ListOdsMaterialbomItem realDiff

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

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