[英]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
创建外部 map,然后使用下游收集器( toMap
)生成内部 map:
list.stream()
.collect(Collectors.groupingBy(MyObject::getDivision,
Collectors.toMap(MyObject::getSubDivision, MyObject::getSize)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.