如果hashmap arraylist中的键相同则添加值

时间:2018-05-24 07:59:55

标签: java android arraylist hashmap

如果密钥相同,我在添加hashmap arraylist的值时遇到问题。我有一个arraylist

ArrayList<HashMap<String, Integer>> expense = new ArrayList<HashMap<String, Integer>>();

输出为

{food = 300},

{entertainment = 100},

{food = 500}

我想创建一个新的hashmap arraylist

ArrayList<HashMap<String, Integer>> newExpense = new ArrayList<HashMap<String, Integer>>();

并存储

{food = 800},

{entertainment = 100}

我尝试过嵌套循环但除了它都没有用。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

你可以有一个简单的哈希图...

将值放在hashmap中时,请使用此代码..

if (map.containsKey(key))
        map.put(key, map.get(key) + newValue);
    else
        map.put(key, newValue);

即使不推荐,如果你仍然需要因为自己的原因那样做.. 这可能是在hashmap中获得新费用的逻辑。

        ArrayList<HashMap<String, Integer>> expense = new ArrayList<HashMap<String, Integer>>();        
        HashMap<String, Integer> newExpense = new HashMap<>();
        for(HashMap<String, Integer> oldExpense : expense)
        {
            for(String key : oldExpense.keySet())
            {
                if (newExpense.containsKey(key))
                    newExpense.put(key, newExpense.get(key) + oldExpense.get(key));
                else
                    newExpense.put(key, oldExpense.get(key));
            }
        }
        System.out.println(newExpense.toString());