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