为什么删除操作报错?

为什么删除操作报错?

for(Cat cat:set) {
			if("花花02".equals(cat.getName())) {
				set.remove(cat);
			}
		}

Exception in thread "main" java.util.ConcurrentModificationException

at java.util.HashMap$HashIterator.nextNode(Unknown Source)

at java.util.HashMap$KeyIterator.next(Unknown Source)

at com.imooc.set.CatTest.main(CatTest.java:73)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
慕工程8241274 2019-03-10 22:02:20

加break;就可以解决; !

无双er 2019-03-10 13:24:11

集合在设计的时候,为了避免数据的不一致性,所以在读取数据时不能同时删除数据。

在删除时,应先结束循环的读取。

  • 我想知道为什么删除花花二代没有break就没报错,删除花花就报错了
    2019-03-24 23:37:19
好帮手慕阿满 2019-03-05 15:08:43

同学你好,这个问题老师在后面会讲到,建议同学先向后学习。祝:学习愉快~

提问者 牡丹丹丹丶 2019-03-05 11:10:26

为什么老师在删除花花二代又不报错呢?

  • 运气好,刚好读取数据完成
    2019-03-10 18:34:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师