我在另一个地图中有多个地图。
Map<String,Double> map1 = new HashMap();
map1.put("value1",40.0);
map1.put("value2",35.0);
map1.put("value3",50.0);
Map<String,Double> map2 = new HashMap();
map2.put("value1",40.0);
map2.put("value4",25.0);
map2.put("value3",50.0);
Map<String,Double> map3 = new HashMap();
map3.put("value1",40.0);
map3.put("value2",35.0);
map3.put("value5",60.0);
Map<String,Map<String,Double>> parentMap = new HashMap();
parentMap.put("key1",map1);
parentMap.put("key2",map2);
parentMap.put("key3",map3);
我能够使用以下逻辑来做到这一点,但不能使用Java 8流来做到这一点。
for (Map.Entry<String, Map<String, Double>> value : parentMap.entrySet()) {
//doing all the calculation
}
我正在尝试获取以下值:
是否可以使用Java流来做到这一点。如果有,我将更新解决方案。
可以使用以下代码汇总一张地图。
map.getValue().entrySet().stream().mapToDouble(Entry::getValue).sum();