добавление значения, если ключ совпадает в массиве hashmap - PullRequest
0 голосов
/ 24 мая 2018

У меня проблемы с добавлением значений массива hashmap, если ключ тот же.У меня есть arraylist как

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

Вывод как

{food = 300},

{entertainment = 100},

{food= 500}

Я хочу создать новый массив хэш-карт

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

и хранить

{food = 800},

{entertainment = 100}

Я пробовал вложенный цикл и все, но он не работал.Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 24 мая 2018

у вас может быть простая хеш-карта для этого ...

при помещении значений в хеш-карту, используйте этот код ..

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

, даже если это не рекомендуется, если вывсе еще нужно сделать это по собственным причинам .. это может быть логикой, чтобы получить новые расходы в хэш-карте ..

        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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...