为什么删除“花花二代”不异常,删除“花花”就出现异常,还是没明白

为什么删除“花花二代”不异常,删除“花花”就出现异常,还是没明白

//删除花花二代的信息并重新输出

for(Cat cat:set) {

if("花花".equals(cat.getName())) {

set.remove(cat);break;

}

}

System.out.println("======================");

System.out.println("删除花花二代后的数据");

for(Cat cat:set) {

System.out.println(cat);

}


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

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

1回答
好帮手慕柯南 2019-11-16 10:50:23

同学,你好!

因为花花二代是集合遍历时最后一个遍历到的数据,删除花花二代以后,集合也就遍历结束了,这样是没有问题的。

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

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


  • 集合不是无序存放的吗?花花二代不一定是最后一个啊?
    2020-02-26 11:05:06
  • 同学你好,这里只是演示了如果使用remove来进行删除数据,会出现问题。不推荐使用remove。这里只是一个删除的例子,并没有规定某个数据就是最后一个。祝学习愉快~
    2020-02-26 15:04:27
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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