stream流通过字段分组对其他字段累加
list.stream().collect(Collectors.toMap(Class::getParam, Function.identity(),
(a, b) -> {
a.setParam(a.getParam() + b.getParam());
....
return a;
}));
例子
Class {111,1,1,1}
Class {111,1,1,1}
Class {222,1,1,1}
按第一个字段分组 后面值累加
结果
111:{111,2,2,2}
222:{222,1,1,1}
如果要转成list则
list.stream() .collect(Collectors.toMap(Class::getParam, a -> a, (a,b)-> { a.setParam(a.getParam() + b.getParam()); .... return a; })).values().stream().collect(Collectors.toList());