我有这样的密钥/值
("A", 2.2);
("A", 1.1);
("B", 4.0);
("B", 2.0);
("C", 2.5);
("A", 2.0);
("A", 2.2);
("A", 1.0);
我希望结果是
A=3.3
B=6.0
C=2.5
A=5.2
我试过密码
static LinkedHashMap<String, Double> map = new LinkedHashMap<String, Double>();
public static void putAndIncrement(String key, double value) {
Double prev = map.get(key);
Double newValue = value;
if (prev != null) {
newValue += prev;
}
double roundOff = Math.round(newValue * 10.0) / 10.0;
map.put(key,roundOff);
}
然而结果是
A=8.5
B=6.0
C=2.5
hashmap、map、linkedhashmap不是获得预期结果的正确方法。对于这种情况,你能请教我其他的方法吗?请帮助我如何得到或任何建议是真正有帮助的我。谢谢您
1条答案
按热度按时间q9rjltbz1#
一
LinkedHashMap
仍然是一个Map
,这意味着键是唯一的。Map上不能有两个"A"
同时使用钥匙。如果要对连续键的值求和,则需要使用
List
使用用于存储密钥/值对的类:测试
输出