实现方法
利用Collectors.toMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction)
keyMapper:代表你最终想要获得的Map<Key, Value> 的Key
valueMapper:代表你最终想要获得的Map<Key, Value> 的Value
mergeFunction:表示碰到Key冲突是处理过程,{x, y}中x是已汇聚对象,y表示当前处理对象
对象类型数据处理
public static Map<String, Model> streamGroupSum(List<Model> datas){
return datas.stream().collect(Collectors.toMap(k -> k.getCode(), v -> v, (x, y) -> x.addCount().addAll(y)));
}
Model
@Data
class Model{
private String code;
private int count = 0;
private Integer sum1;
private Integer sum2;
public Model(String code, Integer sum1, Integer sum2){
this.code = code;
this.sum1 = sum1;
this.sum2 = sum2;
}
public Model addCount(){
this.count++;
return this;
}
public Model a