社区
Java
帖子详情
请问两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
MarsZ
2012-02-18 07:28:24
如题,这个面试题我在很多地方看到不同的答案了,有说可有不同的hash code的 http://zhidao.baidu.com/question/121320206.html ,有说hashcode一定相同的(http://baike.baidu.com/view/551991.htm)
请问到底对不对啊???给强力理由。。
...全文
130
2
打赏
收藏
请问两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
如题,这个面试题我在很多地方看到不同的答案了,有说可有不同的hash code的 http://zhidao.baidu.com/question/121320206.html ,有说hashcode一定相同的(http://baike.baidu.com/view/551991.htm) 请问到底对不对啊???给强力理由。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MarsZ
2012-02-18
打赏
举报
回复
好吧[Quote=引用 1 楼 ldh911 的回复:]
视环境情况而定。
因为 hashCode() 和 equals() 这两个函数都是可以自定义的,你完全可以写出一个equals函数相等的情况下hashCode()却完全不一样的类,有啥不可以呢?
YD点甚至可以 public int hashCode() { return new Random().next();}
但是我们经常强调要遵循约定俗成,否则可能让别人很晕,甚至让自……
[/Quote]
MiceRice
2012-02-18
打赏
举报
回复
视环境情况而定。
因为 hashCode() 和 equals() 这两个函数都是可以自定义的,你完全可以写出一个equals函数相等的情况下hashCode()却完全不一样的类,有啥不可以呢?
YD点甚至可以 public int hashCode() { return new Random().next();}
但是我们经常强调要遵循约定俗成,否则可能让别人很晕,甚至让自己的程序很奇怪。
如果基于这个考虑的话:equals()的对象值,hashCode()应该要相等。
两个
对象
值
相同
(x.
equals
(y) ==
true
),但却可有
不同
的
hash
code
,
这句
话
对不对?
本文通过一个示例展示了如何在Java中使
不同
类型的
对象
在使用
equals
方法时返回
true
,同时探讨了
equals
方法与
hash
Code
方法之间的关系及其在API中的规范。
10.
两个
对象
值
相同
(x.
equals
(y) ==
true
),但却可有
不同
的
hash
code
,
这句
话
对不对?
本文探讨Java中的
equals
与
hash
Code
方法的关系,指出
对象
equals
为
true
时,其哈希码须一致,但反之不成立。讲解了违背这一原则可能带来的问题,并提供编写高质量
equals
方法的技巧,包括类型检查和属性匹配。
两个
对象
值
相同
(x.
equals
(y) ==
true
),但却可有
不同
的
hash
code
,
这句
话
对不对?
当x.
equals
(y)==
true
时,表示
对象
x和y在逻辑上相等,不仅引用地址
相同
,内容也
相同
。
equals
()方法通常根据
对象
类的定义比较逻辑内容,而
hash
Code
()应确保相等的
对象
返回
相同
的哈希码。哈希冲突可以通过链接法、开放地址法或再哈希法解决,以保持哈希表的高效性。
两个
对象
值
相同
(x.
equals
(y) ==
true
),但却可有
不同
的
hash
code
,
这句
话
对不对?
本文深入探讨Java中
equals
方法和
hash
Code
方法的关系与实现原则,强调遵循自反性、对称性、传递性和一致性的重要性,以及在重写
equals
方法时同步重写
hash
Code
方法的必要性。
两个
对象
值
相同
(x.
equals
(y) ==
true
),但却可有
不同
的
hash
code
,
这句
话
对不对
本文详细解析了Java
hash
Code
方法的三个基本约定,包括在
相同
对象
多次调用时的一致性、
对象
相等时的
hash
Code
一致性以及不相等
对象
的
hash
Code
可变性。旨在帮助开发者正确使用
hash
Code
实现高效哈希表。
Java
51,408
社区成员
86,093
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章