//根据SupplierName分组汇总Score数据 Map<String, BigDecimal> map = list.stream() .collect(Collectors.groupingBy(PurchasePerformanceAuditResultItem4DepartProVo::getSupplierName,Collectors.mapping(PurchasePerformanceAuditResultItem4DepartProVo::getScore, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)))); //根据SupplierName去重,多字段去重如:f.getSupplierName() + f.getOrderNumber() List<PurchasePerformanceAuditResultItem4DepartProVo> collect = list.stream() .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getSupplierName()))), ArrayList::new)); //更新成汇总数据 for (PurchasePerformanceAuditResultItem4DepartProVo proVo : collect) { proVo.setScore(map.get(proVo.getSupplierName())); }
Java使用stream去重并且汇总BigDecimal数据
于 2023-09-18 10:23:00 首次发布