我有兩個HashMap<String, Integer>
我怎樣才能得到的平均值?得到兩個+ HashMap的平均值使用Java 8
HashMap<String, Integer> map1
map1.put("str1", 7);
map1.put("str2", 4);
HashMap<String, Integer> map2
map2.put("str1", 3);
map2.put("str2", 2);
預期輸出是:
("str1") = 5;
("str2") = 3;
我能夠檢索兩個地圖的總和如下:
map2.forEach((k, v) -> map1.merge(k, v, Integer::sum));
但我怎麼可以檢索兩個地圖的使用平均Java 8?
更新:
在@我張貼我的代碼的較大部分的要求:
HashMap<String, HashMap<String, Double>> map;
HashMap<String, Double> map2 = new HashMap<String, Double>();
map = func1();
map = func2();
map = func3();
for (Entry<String, HashMap<String, Double>> entry : map.entrySet()) {
String key = entry.getKey();
HashMap<String, Double> mp = map.get(key);
mp.forEach((k, v) -> map2.merge(k, v, (t, u) -> (t + u)/2));
for (Entry<String, Double> entry1 : mp.entrySet()) {
StringfieldName = entry1.getKey();
Double score= entry1.getValue();
System.out.println(fieldName.toString() + " = " + score);
}
}
return map2;
}
如果你已經有了這個總和,那麼你除了把它除以2並得到平均值是什麼? – kichik
我嘗試:'mp.forEach((K,V) - > map2.merge(K,V,整型::總和)/ 2)',但我不能這個表達式內劃分( 「空隙方法不能返回一個值」) –
@kichik取決於他的平均含義。我認爲它是'sum /(map1.values()。size()+ map2.values()。size())' – Michael