使用Iterator循环时将项添加到HashMap

时间:2015-03-01 20:28:56

标签: java iterator hashmap listiterator

我有一个使用Iterator遍历HashMap的程序,并且在循环内部,我正在添加HashMap - 这导致了ConcurrentModificationException。我已经看到ListIterator有一个处理这个的add()函数,但Iterator没有。

HashMap设置如下 -

HashMap<Pair<Integer, Integer>, Object>

像这样的迭代器 -

Iterator<Entry<Pair<Integer, Integer>, Object>> iter;

对象(不是真名)是我程序中的一个类。 在循环或任何其他选项时,有谁知道如何添加到迭代器?

1 个答案:

答案 0 :(得分:3)

循环浏览地图的副本,然后添加到原始地图。地图的条目集是地图的键值对的视图,虽然您可以删除项目,但不支持添加。

或者你可以在迭代时将元素添加到新地图中,然后再使用putAll() ...来想一想,这可能更有效。