从包含多个员工对象的arraylist获取合并详细信息

时间:2017-10-15 18:54:34

标签: java collections

我有员工对象的arraylist。每个员工对象都有名称,部门,工资等详细信息。我想为每个部门打印,该部门的员工总数是多少,该部门员工的总薪水是多少。有没有最简单的方法可以通过使用集合模块类和方法来找出这个...

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。例如。您可以使用流:按部门对所有元素进行分组,然后为每个部门计算总工资。

employees.stream()
         .collect(Collectors.groupingBy(Employee::getDepartment, HashMap::new,
                 Collectors.mapping(Function.identity(), Collectors.toList())))
         .forEach((department, e) ->
                 System.out.format("Department: %s; employees amount: %d; total salary: %d", department, e.size(), e.stream().mapToInt(Employee::getSalary).sum()));