花花二代改为花花为什么就报错

花花二代改为花花为什么就报错

花花二代改为花花为什么就报错,例题中没看明白

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

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

1回答
好帮手慕小脸 2020-07-28 15:10:25

同学你好,java.util.ConcurrentModificationException这个异常出现的原因是在遍历集合时,对集合中的元素进行了修改。Java中是不允许一边遍历一遍进行修改集合中的元素,会出现数据的不一致性哦~

但是对于Set集合,如果删除的是集合中最后一个元素,是不会进行报错的。

这里删除花花报错是因为,花花不是集合最后遍历的数据,之后循环会继续执行,这时候就会发生错误。因为删除数据后,集合的存储结构就发生变化了,再遍历肯定要出错的

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 易萧 #1
    不是说集合没有顺序吗,为什么会因为顺序的原因,一个报错,一个不报错。 而且遍历出来的顺序,个别的确和添加时候的顺序不一样。 也就是说,如果恰好就是遍历顺序的最后一个,就不会报错,但是,删除元素的代码逻辑,不应当依赖这个顺序性,对吗?
    2020-08-13 16:34:36
  • 同学你好,Set集合无序是指不会按照其添加的顺序来存储对象。set集合里对象在集合中是通过对象的hashcode值进行排序的。所以遍历的最后一个与要删除元素的最后一个都是指set集合的最后一个,是不会报错的。 祝学习愉快~
    2020-08-13 18:31:07
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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