Java将Map内部的Map转换为单个聚合Map

时间:2020-05-31 16:26:01

标签: java java-8

我在另一个地图中有多个地图。

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
}

我正在尝试获取以下值:

  1. 所有地图中所有值的总和
  2. 具有相似键值之和的单个映射
  3. 具有总和值的前3个键

是否可以使用Java流来做到这一点。如果有,我将更新解决方案。

可以使用以下代码汇总一张地图。

map.getValue().entrySet().stream().mapToDouble(Entry::getValue).sum();

0 个答案:

没有答案