A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 夏萱 中级黑马   /  2016-7-17 00:00  /  1006 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 夏萱 于 2016-7-17 00:03 编辑

书上说HashSet查重的方法是调用对象的hashCode(),

hashCode是表示存储位置吗?

一定要存在同一个位置才能知道重复吗?

还是所有类都重写了这个方法?

查重为什么先调用hashCode(),再调用equals(),equals不也是比较hashcode吗?

2 个回复

倒序浏览
不是的,hashCode()是比较数值是否相同,如果数值相同就需要比较地址值是否相同,equals  是比较两个数值的地址值是否相同。hashCode和equals 是不相同的
回复 使用道具 举报
jmf332376308 发表于 2016-7-17 00:15
不是的,hashCode()是比较数值是否相同,如果数值相同就需要比较地址值是否相同,equals  是比较两个数值的 ...

谢谢,我再理解一下hashcode,被绕的好晕
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马