查出每个单位入职最早的员工基本信息集合用stream流咋实现
时间: 2023-04-01 22:04:30 浏览: 164
可以使用Java 8中的Stream API来实现。首先,需要将员工基本信息存储在一个List<Employee>中,然后按照单位分组,再对每个单位的员工按照入职时间排序,最后取出每个单位的第一个员工即可。
示例代码如下:
List<Employee> employees = ... // 员工基本信息列表
Map<String, List<Employee>> groupedEmployees = employees.stream()
.collect(Collectors.groupingBy(Employee::getUnit)); // 按照单位分组
Map<String, Employee> earliestEmployees = new HashMap<>();
groupedEmployees.forEach((unit, unitEmployees) -> {
Employee earliestEmployee = unitEmployees.stream()
.sorted(Comparator.comparing(Employee::getHireDate))
.findFirst()
.orElse(null); // 取出每个单位的第一个员工
if (earliestEmployee != null) {
earliestEmployees.put(unit, earliestEmployee);
}
});
其中,Employee类需要实现getUnit()和getHireDate()方法,分别返回员工所在单位和入职时间。
阅读全文