我有一个使用Iterator遍历HashMap的程序,并且在循环内部,我正在添加HashMap - 这导致了ConcurrentModificationException。我已经看到ListIterator有一个处理这个的add()函数,但Iterator没有。
HashMap设置如下 -
HashMap<Pair<Integer, Integer>, Object>
像这样的迭代器 -
Iterator<Entry<Pair<Integer, Integer>, Object>> iter;
对象(不是真名)是我程序中的一个类。 在循环或任何其他选项时,有谁知道如何添加到迭代器?
答案 0 :(得分:3)
循环浏览地图的副本,然后添加到原始地图。地图的条目集是地图的键值对的视图,虽然您可以删除项目,但不支持添加。
或者你可以在迭代时将元素添加到新地图中,然后再使用putAll()
...来想一想,这可能更有效。