假设有一个名为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()方法输出每个部门的最高薪资员工。