繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM