首页新闻找找看学习计划

对象的值和编码值

0
[待解决问题]

两个对象equals为ture 那么他们的hashcode一定相等吗?

下一次巅峰的主页 下一次巅峰 | 初学一级 | 园豆:18
提问于:2017-05-24 22:01
< >
分享
所有回答(5)
0

一定 那就是不一定

吴瑞祥 | 园豆:28736 (高人七级) | 2017-05-24 22:05
0

class classA{

override equals(object obj){ return true}

override gethashcode(){return radom.next(0,int.maxvalue)}

}

你说一定相等么

czd890 | 园豆:8079 (大侠五级) | 2017-05-24 22:14
0

两个方法都重写了,就是相等的

Soul飞刀 | 园豆:202 (菜鸟二级) | 2017-05-24 23:08
0

两个方法都重写了,就是相等的

全力以赴001 | 园豆:616 (小虾三级) | 2017-05-25 17:32
0

答:不一定相同。正常情况下,因为equals()方法比较的就是对象在内存中的值,如果值相同,那么Hashcode值也应该相同。但是如果不重写hashcode方法,就会出现不相等的情况。

Mr_伍先生 | 园豆:27 (初学一级) | 2017-05-30 11:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册