栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

迭代Map时发生ConcurrentModificationException

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

迭代Map时发生ConcurrentModificationException

除非使用,否则不能在迭代时从集合中删除元素

Iterator

这就是导致异常的原因。

buyingItemEnumerationMap.remove(item.getKey());

使用Iterator#remove()在遍历集合时删除元素,例如

Iterator<Map.Entry<String, Integer>> iterator =      buyingItemEnumerationMap.entrySet().iterator();while (iterator.hasNext()) {   Map.Entry<String, Integer> item = iterator.next();   if(RandomEngine.boolChance(50)){ //will delete?      iterator.remove();   }   //..}

编辑 :(响应OP的评论)
是的,删除完成通过

Iterator#remove()
Set
由归国
HashMap.entrySet()
将在基本反映了
Map
作为
Set
被它的支持。在此处引用JavaDoc:

返回此映射中包含的映射的Set视图。集合由地图支持,因此对地图的 更改会反映在集合中,反之亦然



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号