为了账号安全,请及时绑定邮箱和手机立即绑定

关于remove id后依旧可以查到id对应的name的逻辑问题

https://img1.sycdn.imooc.com//5ba938b80001800105550232.jpg

remove了id后,依旧可以查到id对应的name,这里的逻辑顺序是什么

正在回答

2 回答

很正常,你这里查询的name是来自st变量,而不是来自于集合students,该对象的确被删除了,students里是没有的。但是你新建了一个对st的引用变量,这个对象是你从students集合中取出来的,现在在被st引用。而你使用了remove,students集合中是不会有这个对象了,但是你在调用name时,是使用的st引用变量来调用查看的

1 回复 有任何疑惑可以回复我~
#1

断弦之殇 提问者

也就是说Students st=students.get(id);这句不仅获得了写入的id,如果id存在的话,会把对应的name也自动赋给了了st,st其实是一个完整的Students类型的对象
2018-09-27 回复 有任何疑惑可以回复我~
#2

wayTG 回复 断弦之殇 提问者

Students st=students.get(id) 这句话的意思是将集合中索引为id的元素取出来赋值给st变量。而你的删除是删除集合中索引为id的元素。这个时候,st变量(也就是你之前从集合里取出来的元素)还在的。但是你打印输出的是st里的stuname属性。
2018-09-27 回复 有任何疑惑可以回复我~
#3

断弦之殇 提问者 回复 wayTG

嗯嗯,懂了
2018-09-28 回复 有任何疑惑可以回复我~
#4

断弦之殇 提问者 回复 wayTG

谢谢哈
2018-09-28 回复 有任何疑惑可以回复我~
#5

wayTG 回复 断弦之殇 提问者

不用谢~
2018-09-29 回复 有任何疑惑可以回复我~
查看2条回复

额 不知道能不能说清楚

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于remove id后依旧可以查到id对应的name的逻辑问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信