如何将列表转换为地图的地图
How to convert list to Map of Map
我有这样的代码:
class MyObject{
String division;
String subDivision;
Integer size;
public MyObject(String division, String subDivision, Integer size) {
this.division = division;
this.subDivision = subDivision;
this.size = size;
}
List<MyObject> list = Arrays.asList(new MyObject("A", "AA", 4),
new MyObject("A", "AB", 2),
new MyObject("A", "AC", 3),
new MyObject("B", "BA", 11),
new MyObject("B", "BB", 7),
new MyObject("C", "CA", 8));
Map<String, Map<String,Integer>> map
= list.stream().collect(Collectors.toMap(MyObject::getDivision), ...);
你能帮我完成代码库吗?
您可以使用带有分类器和下游收集器的 groupingBy
。分类器用于根据division
创建外层映射,然后下游收集器(toMap
)用于生成内层映射:
list.stream()
.collect(Collectors.groupingBy(MyObject::getDivision,
Collectors.toMap(MyObject::getSubDivision, MyObject::getSize)));
我有这样的代码:
class MyObject{
String division;
String subDivision;
Integer size;
public MyObject(String division, String subDivision, Integer size) {
this.division = division;
this.subDivision = subDivision;
this.size = size;
}
List<MyObject> list = Arrays.asList(new MyObject("A", "AA", 4),
new MyObject("A", "AB", 2),
new MyObject("A", "AC", 3),
new MyObject("B", "BA", 11),
new MyObject("B", "BB", 7),
new MyObject("C", "CA", 8));
Map<String, Map<String,Integer>> map
= list.stream().collect(Collectors.toMap(MyObject::getDivision), ...);
你能帮我完成代码库吗?
您可以使用带有分类器和下游收集器的 groupingBy
。分类器用于根据division
创建外层映射,然后下游收集器(toMap
)用于生成内层映射:
list.stream()
.collect(Collectors.groupingBy(MyObject::getDivision,
Collectors.toMap(MyObject::getSubDivision, MyObject::getSize)));