我有嵌套地图:
Map<String,Map<Integer,List<MyObject>>> myMap;
MyObject有字段&#34; field1 &#34;。
如何计算每个List中所有对象的 field1 的总和?使用Java中的lambda?
答案 0 :(得分:2)
在地图值上创建一个流,然后连续展平并将该字段提取为sum,然后最终调用sum
终端操作。
int summation = myMap.values()
.stream()
.map(Map::values)
.flatMap(Collection::stream)
.flatMap(Collection::stream)
.mapToInt(MyObject::getField1)
.sum();
答案 1 :(得分:0)
尝试
myMap.forEach((k,v)->{v.values().stream().forEach(w->{field1 += field1;});});
return field1;