按多个字段分组统计
map
List<M> collect = ms.stream().collect(Collectors.toMap(k -> k.getG1()+"_"+k.getG2()+"_"+k.getG3(), e -> e, (o1, o2) -> {
o1.setK1(o1.getK1().add(o2.getK1()).setScale(2,BigDecimal.ROUND_HALF_UP));
o1.setK2l(o1.getK2.add(o2.getK2).setScale(2,BigDecimal.ROUND_HALF_UP));
return o1;
})).values().stream().collect(Collectors.toList());
List<M> collec