首页 新闻 会员 周边

对象的值和编码值

0
[待解决问题]

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

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

一定 那就是不一定

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

class classA{

override equals(object obj){ return true}

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

}

你说一定相等么

czd890 | 园豆:14412 (专家六级) | 2017-05-24 22:14
0

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

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

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

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

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

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