黑马程序员技术交流社区
标题:
hashcode问题
[打印本页]
作者:
鲁中需
时间:
2012-10-25 10:44
标题:
hashcode问题
两个对象值相同
(x.equals(y) == true)
,那么他们的hashCode也必须一样吗,求解。
作者:
赵云柯
时间:
2012-10-25 11:34
是的。
当程序调用某个对象的equals方法时,该方法内部会先判断要比较的两个实例的hashCode值。
如果hashCode值不相等,则equals方法直接返回false。
如果hashCode值相等,才会继续判断两个对象是否满足equals方法的其它条件。
因此,如果x.equals(y) == true,那么x和y的hashCode值一定相等。
我们在自定义类的时候也要注意,一定要覆盖hashCode和equals方法,从而保证自定义类对象的唯一性。
作者:
up_
时间:
2012-10-25 12:19
x.equals(y) == true
就这句语句而言,如果本身并没有覆写Object方法里的hashCode和equals,那么x和y的hashCode一定相同,
如果你本身根据需求定义了自己的equals方法,则通过你定义的方法进行equals。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2