我有员工名单。我需要获取每个部门和子部门的员工ID列表,
class Employee{
int id;
String name;
String department;
String subDepartment;
}
我检查了许多教程,并尝试过但没有运气。
employeeList.stream()
.collect(Collectors.toMap(empl->empl.getDepartment(), // get sub-departmets and empId list for each sub-departmets));
我需要类似的结果
{Dept1={subDept1=[1, 2], subDept2=[3, 4, 5]}
有人可以帮我吗?
答案 0 :(得分:3)
您可以使用groupBy
,
employeeList.stream()
.collect(Collectors.groupingBy(Employee::getDepartment,
Collectors.groupingBy(Employee::getSubDepartment,
Collectors.mapping(Employee::getId, toList()))));