[英]Adding items to a HashMap while looping with Iterator
我有一个使用Iterator遍历HashMap的程序,在循环内部,我添加到HashMap - 这导致了ConcurrentModificationException。 我已经看到ListIterator有一个处理这个的add()函数,但Iterator没有。
HashMap设置如下 -
HashMap<Pair<Integer, Integer>, Object>
像这样的迭代器 -
Iterator<Entry<Pair<Integer, Integer>, Object>> iter;
使用Object(不是真名)是我程序中的一个类。 在我循环或任何其他选项时,有谁知道如何添加到迭代器?
相反,循环遍历地图的副本,并添加到原始地图。 地图的条目集是Map的键值对的视图,虽然您可以删除项目,但不支持添加。
或者,您可以在迭代时将元素添加到新地图,然后使用putAll()
...来想一想,这可能更有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.