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