我有以下课程:
public class Foo {
private String areaName;
private String objectName;
private String lineName;
}
现在我想把
List<Foo>
到
Map<String, Map<String, List<String>>>
. 我发现
this answer
这帮助我开发了以下代码:
Map<String, Map<String, List<String>>> testMap = foos.stream().collect(Collectors.groupingBy(e -> e.getAreaName(),
Collectors.groupingBy(e -> e.getObjectName(), Collectors.collectingAndThen(Collectors.toList(),
e -> e.stream().map(f -> f.getLineName())))));
此代码的唯一问题是它应该转换为的部分
List<String>
. 我找不到办法改变信仰
Foo
到
List
在那部分。
另一种导致
Map<String, Map<String, List<Foo>>>
Map<Object, Map<Object, List<Foo>>> testMap = ventures.stream().collect(Collectors.groupingBy(e -> e.getAreaName(),
Collectors.groupingBy(e -> e.getObjectName(), Collectors.toList())));
我需要改变什么才能收到
从
列表<Foo>
?