社区
Java SE
帖子详情
java中值相同,hashcode一定相同吗??
nujiah001
2010-04-06 09:52:49
java中值相同,hashcode一定相同吗??
...全文
571
4
打赏
收藏
java中值相同,hashcode一定相同吗??
java中值相同,hashcode一定相同吗??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dhysf
2010-04-07
打赏
举报
回复
java对象中值相同的话,hashCode
不一定相同
的
davis_rly
2010-04-06
打赏
举报
回复
1
java对象中值相同的话,hashCode不一定相同的,但是也有相同的。比如String类的hashCode如果两个String字面值一样,那么hashCode一定是相同的,因为String类重写了hashCode()方法
对于hashCode()方法的重写规则,最好需要遵守额规则是:如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
希望明白 嘿嘿 刚刚通过了SCJP
focusforce
2010-04-06
打赏
举报
回复
Object
public int hashCode()返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。
hashCode 的常规协定是:
在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。
实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)
o笨笨猪o
2010-04-06
打赏
举报
回复
原则上equals()返回true,那么hashCode()也要相等。
相关推荐
Java
对于Equals方法和
HashCode
方法的联系
Java
对于Equals方法和
HashCode
方法的联系 1.如果两个对象
相同
,那么他们
hashcode
一定
相同
; 2.如果他们的
hashcode
相同
,那么他们的对象不
一定
相同
,是是有equals方法进行比较的; 3.equals不相等的两个对象
hashcode
有可能
相同
,
hashcode
不相等,equals
一定
不相等,
hashcode
相同
,equals可能
相同
也肯能不同。 ...
hashcode
相同
,equals
一定
相同
吗?
hashcode
相同
,equals
一定
相同
吗?
hashcode
相同
,equals
一定
相同
吗?对于初学
java
的同学可能会感到疑惑,
hashcode
相同
的话,equals肯定返回true呀? 真是这样吗?其实不然,我们以HashMap为列? public class
Java
Method { public static void main(String[] args) { HashMap&...
面试题(1)
1、HashMap的数据结构:entry数组+Entry 链,
相同
hashcode
位置
相同
,后放入的位于列表的头部
java
对象
中值
相同
的话,
hashCode
不
一定
相同
的,但是也有
相同
的。比如String类的
hashCode
如果两个String字面值一样,那么
hashCode
一定
是
相同
的,因为...
三年
JAVA
最全最精华面试题
JAVA
基础 1.
Hashcode
()和 equals()和==区别? (1)
hashcode
()方法跟 equals()在
java
中都是判断两个对象是否相等 (2) 两个对象
相同
,则
hashcode
至
一定
要
相同
,即对象
相同
---->成员变量
相同
---->
hashcode
值
一定
相同
(3)两个对象的
hashcode
值
相同
,对象不
一定
相等。总结:equals 相等则
hashcode
一定
相等,
hashcode
相等,equals 不
一定
相等。 (4)==比较的是两个引用在内存
equals和
hashCode
到底有什么区别?
1.
hashCode
相等的两个对象
一定
相等嘛?相反呢? 两个
hashcode
值
相同
对象不
一定
相同
,hash值不同两个对象
一定
步
相同
,碰撞的情况下可能会
相同
。 两个对象equals
相同
,
hashCode
值
一定
相同
。 2.equals和
hashCode
的作用? 两者的作用其实都是一样的,在
java
里都是用来对比两个对象是否相等。 3.equals和
hashCode
的区别? equals和
hashCode
方法主要的区别在于:性能,可靠性; equals方法:因为
hashCode
并不是完全可靠的,有时候不同的
Java SE
62,569
社区成员
307,520
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告