set 集合删除元素问题

set 集合删除元素问题

//删除花花二代的信息并重新输出
		for(Cat cat:set) {
			if( "huahua二代".equals(cat.getName()) ) {
				set.remove(cat);
			}
		}
		System.out.println("删除花花二代后的数据:");
		for(Cat cat:set) {
			System.out.println(cat);
		}

为什么直接remove(cat)?为什么删除cat就可以删除set对应的元素?此时cat就是set中的元素?他不应该是另一个引用名吗?

正在回答

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

1回答

同学你好,在使用for(Cat car : set)遍历时,cat指代的是集合中的元素,所以在set.remove(cat)时会将对应的元素删除。

祝学习愉快~

  • 不是说“增强for循环底层是迭代器,不可以在增强for循环中删除集合元素,建议在普通循环删除集合元素”,那这里为什么要用增强for循环删除集合中的元素?
    2022-01-15 05:20:30
  • 同学你好,并不是不可以在增强for循环中删除,而是不建议;另外这里老师是为了给同学演示使用set集合删除元素时会出现的问题,从而在之后的练习中进行规避

    祝学习愉快~

    2022-01-15 10:40:54
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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