如果密钥相同,我在添加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}
我尝试过嵌套循环但除了它都没有用。有人可以帮帮我吗?
答案 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());