java在迭代时对map进行更改

时间:2017-04-06 21:40:22

标签: java hashmap

我想向Map<添加新元素整数,列表<整数>> (关键是总和,值是数字)

int c = 3;
for (Map.Entry<Integer, List<Integer>> entry : map.entrySet() ) {
                int key = entry.getKey() + c;
                List<Integer> l = new ArrayList<>(entry.getValue());
                l.add(c);
                map.put(key, l);
             }

例如: 在代码Map之前(3,[1,2]) 在Map(3,[1,2]; 6,[1,2,3])之后

我收到了java.util.ConcurrentModificationException 但是当我将键更改为常量时:int key = 6; 它有效。

感谢您的时间

1 个答案:

答案 0 :(得分:0)

使用增强型for循环时,添加,删除或编辑有时会出现问题,只使用它们来访问元素是安全的。尝试使用常规for循环,它应该解决问题。