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

Adding items to a HashMap while looping with Iterator

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

HashMap是这样设置的 -

HashMap<Pair<Integer, Integer>, Object>

像这样的迭代器 -

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

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

改为循环遍历地图的副本,然后添加到原始地图。 Map的entry set是Map的键值对的视图,不支持添加,但可以删除。

或者,您可以在迭代时向新地图添加元素,然后在之后使用 putAll()...想想看,这可能更有效。