我有以下的类:
public class Foo {
private String areaName;
private String objectName;
private String lineName;
}
现在我想将一个
List<Foo>
转换为 Map<String, Map<String, List<String>>>
。我找到了这个答案,它帮助我开发以下代码: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())));
我需要更改什么才能从 List<Foo>
接收到Map<String, Map<String, List<String>>>
?
Collectors::mapping
方法! - XtremeBaumer