如何组合一个字段并将其他两个字段相加

时间:2017-04-12 12:06:11

标签: java group-by java-8 sum java-stream

如何分组一个字段并将其他两个字段相加? 工资类如下:

public class Salary {
  private Integer id;   
  private Double simSalary;
  private Double nonsimSalary;
}

数据如下:

id = 01, simSalary = 100, nonsimSalary = 0;
id = 01, simSalary = 0, nonsimSalary = 20;
id = 02, simSalary =50, nonsimSalary = 30;

我希望groupby为id并将simSalary和nonsimSalary相加,结果应该是这样的:

id = 01, simSalary = 100, nonsimSalary = 20;
id = 02, simSalary = 50, nonsimSalary = 30;

但是使用下面的代码,我只能求和一个字段,如何一次对这两个字段求和?

List<Salary> salaryList = getSalary();
salaryList.stream().collect(Collectors.groupingBy(Salary::getId,
            Collectors.summingDouble(Salary::getSimSalary))));

0 个答案:

没有答案