stream流中的多级分组
时间: 2025-02-12 16:13:06 浏览: 39
### Java Stream API 实现多级分组
在处理复杂数据结构时,Java Stream API 提供了强大的工具来简化集合的操作。对于多级分组的需求,可以利用 `Collectors.groupingBy` 方法嵌套调用来实现。
下面是一个具体的例子,展示如何在一个员工列表中按部门和职位进行两级分组:
```java
import java.util.*;
import java.util.stream.Collectors;
class Employee {
private String name;
private String department;
private String position;
public Employee(String name, String department, String position) {
this.name = name;
this.department = department;
this.position = position;
}
// Getters and setters omitted for brevity
@Override
public String toString() {
return "Employee{name='" + name + "', department='" + department + "', position='" + position + "'}";
}
}
public class MultiLevelGroupingExample {
public static void main(String[] args) {
List<Employee> employees = Arrays.asList(
new Employee("Alice", "HR", "Manager"),
new Employee("Bob", "Engineering", "Developer"),
new Employee("Charlie", "HR", "Recruiter"),
new Employee("David", "Engineering", "QA Engineer")
);
Map<String, Map<String, List<Employee>>> result =
employees.stream()
.collect(Collectors.groupingBy(Employee::getDepartment,
Collectors.groupingBy(Employee::getPosition)));
System.out.println(result);
}
}
```
这段代码创建了一个包含四个不同员工的对象列表,并按照他们的所属部门以及具体职位进行了两次分组操作[^1]。最终的结果是以部门作为外层键值,内部再以职位为键构建的一个双重映射表。
阅读全文
相关推荐

















