黑马程序员技术交流社区

标题: HashSet调用hashCode()的问题求指导 [打印本页]

作者: 夏萱    时间: 2016-7-17 00:00
标题: HashSet调用hashCode()的问题求指导
本帖最后由 夏萱 于 2016-7-17 00:03 编辑

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

hashCode是表示存储位置吗?

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

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

查重为什么先调用hashCode(),再调用equals(),equals不也是比较hashcode吗?
作者: jmf332376308    时间: 2016-7-17 00:15
不是的,hashCode()是比较数值是否相同,如果数值相同就需要比较地址值是否相同,equals  是比较两个数值的地址值是否相同。hashCode和equals 是不相同的
作者: 夏萱    时间: 2016-7-17 00:34
jmf332376308 发表于 2016-7-17 00:15
不是的,hashCode()是比较数值是否相同,如果数值相同就需要比较地址值是否相同,equals  是比较两个数值的 ...

谢谢,我再理解一下hashcode,被绕的好晕





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2