我有一个List<Employee>
e,我想将其转换为Map<String, Map<String,Emp>>
其中外部字符串应为“名称”,内部字符串应为“域”]
Name Id Domain
e(0) - Emp1, 1, Insurance
e(1) - Emp1, 2, Sales
e(2) - Emp2, 3, Sales
e(3) - Emp4, 4, Marketing
我已尝试以下操作-
e.stream().collect(Collectors.groupingBy(
Employee::getName,
toMap(Employee::getDomain,Emp)));
所以预期的输出图应该看起来像
<Emp1>
<Insurance, e(0)>
<Sales, e(1)>
<Emp2>
<Sales, e(2)>
<Emp4>
<Marketing, e(3)>
但是我只能得到唯一的值实际输出-
<Emp1>
<Insurance, e(0)>
<Emp2>
<Sales, e(2)>
<Emp4>`enter code here`
<Marketing, e(3)>
有人可以告诉最好的方法吗?
Map<String, Map<String,Employee>>
而不是Map<String, Map<String,List<Employee>>>
,因此可以链接两个groupingBy
,然后使用reduce来确保每个内部组都有一个Employee
: