关于HastSet改动id的问题
还有0人有此问题
发表在Java视频课程答疑 2017-06-19
是否精华
版块置顶:

 在视频java第二季的9.8中,老师的说道把p2的id改动了后,然后删除p2,结果p2没有删掉,原因是改动后的p2哈希值变成id=5的哈希值,所以没删掉。

我想了很久不明白,后来我这样子想,是不是p2这个元素被插入HashSet集合后p2就可以引用别的元素的值,改动了p2的id值,等于改动了p2第一个值的参数,但是并没有改动第一个值的哈希值,p2.id=5;是不是同等于Peoper p2=new Peoper(5, "大壮");这时并没有给集合添加这个new Peoper(5, "大壮"),p2的引用还是new Peoper(2, "大壮")?说的很乱,希望老师看的明白。


分享到:
精彩评论 1
David
学分:914 LV7
TA的每日心情
最后的冲刺
2017-07-15 10:46:08
2017-06-20
沙发

HashSet集合判断两个元素相等的标准是两个对象通过equals()方法比较相等,并且两个对象的hashCode()方法返回值也相等(两个条件必须同时满足)。视频中把id改成了5,说明元素被改变了,这会导致HashSet不能准确地访问该元素,所以不能删除对象p2。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照