Hashmap JSON Key的总和

时间:2018-11-12 09:40:13

标签: android hashmap

美好的一天,我几乎遍历了每一篇有关如何使用同一密钥对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中正确填充了所有数据。

在此查询方面的任何帮助将不胜感激。

谢谢, 亲切的问候

2 个答案:

答案 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中检查该键是否存在。如果存在的话,我会得到它的值并在其中添加新值,所以最后得到的总和就是