Java 8 lambda表达式用于选择每个部门的最高薪资员工。

bluesky1年前 ⋅ 197 阅读

ChatGPT的回答仅作参考:

假设有一个名为Employee的类,其中包含员工的姓名、薪资和所属部门。我们可以使用Java 8的lambda表达式来选择每个部门的最高薪资员工,代码如下:

```
List<Employee> employees = ... // 假设已经有了员工列表

Map<String, Employee> highestPaidEmployeesByDepartment = employees.stream()
    .collect(Collectors.groupingBy(Employee::getDepartment,
             Collectors.collectingAndThen(
                 Collectors.maxBy(Comparator.comparing(Employee::getSalary)),
                 Optional::get)));

// 输出每个部门的最高薪资员工
highestPaidEmployeesByDepartment.forEach((department, employee) ->
    System.out.println("Department: " + department + ", Highest Paid Employee: " + employee.getName()));
```

这段代码首先使用stream()方法将员工列表转换为一个流,然后使用groupingBy()方法按照部门进行分组。在分组的基础上,使用collectingAndThen()方法将每个部门的员工列表转换为最高薪资员工。最后,使用forEach()方法输出每个部门的最高薪资员工。

全部评论: 0

    相关推荐