美好的一天,我几乎遍历了每一篇有关如何使用同一密钥对HashMaps的值求和的帖子,大多数(如果不是全部的话)是指两个Hashmap,然后合并。
我需要实现以下目标: 我有一个从JSON响应中填充的HashMap,并且该哈希图中的数据如下所示:
String Key: House1
String Value: 500
String Key: House1
String Value: 5000
String Key: House2
String Value: 200
String Key: House1
String Value: 500
String Key: House2
String Value: 500
我想填充一个列表以仅显示所有值的总和,因此在上面的示例中,该列表应仅具有以下内容:
String Key: House1
String Value: 6000
String Key: House2
String Value: 700
当我填充ListView时,我可以看到在Hashmap中正确填充了所有数据。
在此查询方面的任何帮助将不胜感激。
谢谢, 亲切的问候
答案 0 :(得分:0)
Hashmap不允许单个键使用多个值。如果存在与下面相同的密钥,则Hashmap会覆盖该密钥。
map.put("House1","500");
map.put("House1","5000");
输出
key: value
House1: 5000
答案 1 :(得分:0)
地图不允许使用相同的键。但是您可以做这样的事情。
这将解决您的问题
private void calc(HashMap<String, Integer> map, String key, Integer value) {
if (map.containsKey(key)) { //Key already exist in Hashmap
Integer val = map.get(key); // get the value of key
val = val + value; // adding new value and old value
map.put(key, val); //Storing sum of values
}else {
map.put(key, value);
}
我正在将Hashmap,键和值传递给此函数,然后在Hashmap中检查该键是否存在。如果存在的话,我会得到它的值并在其中添加新值,所以最后得到的总和就是