多层Collectors.groupingBy
时间: 2023-11-07 16:06:14 浏览: 98
深入探索Java 8的`Collectors.groupingBy()`:分组的艺术
多层Collectors.groupingBy是用于多级分组的情况。它允许我们按照多个属性对元素进行分组,并生成一个嵌套的Map结构。
下面是一个示例:
```java
Map<Department, Map<Gender, List<Employee>>> employeesByDepartmentAndGender = employees.stream()
.collect(Collectors.groupingBy(Employee::getDepartment,
Collectors.groupingBy(Employee::getGender)));
```
在这个示例中,我们首先按照员工的部门进行分组,然后在每个部门内再按照性别进行分组,生成一个嵌套的Map结构。最终的结果是一个`Map<Department, Map<Gender, List<Employee>>>`,其中`Department`是部门的类型,`Gender`是性别的类型,`List<Employee>`是每个部门和性别的员工列表。
阅读全文