java里equals和hashCode之间什么关系

 我来答
刺任芹O
2022-11-16 · TA获得超过6.1万个赞
知道顶级答主
回答量:38.7万
采纳率:99%
帮助的人:8245万
展开全部

equals与hashcode的关系是:

两个对象在equals相等的情况下,hashcode有可能相等也有可能不相等,

而两个对象在hashcode不相等的情况下,equals也必定不相等。

理解equals的应用:它是用于用户在进行对比的时候,这个时候对比的是内容是否相等

理解hashcode的应用:例如set集合,它的不可重复,进行对比的便是hashcode是否相等,因此set集合实现了不可重复。

如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。

即使两个hashCode()返回的结果相等,两个对象的equals方法也不一定相等。

扩展资料:

equals:

电脑编程语言,被用来检测两个对象是否相等,即两个对象的内容是否相等。

equals 方法(是String类从它的超类Object中继承的)

==用于比较引用和比较基本数据类型时具有不同的功能:

比较基本数据类型,如果两个值相同,则结果为true

而在比较引用时,如果引用指向内存中的同一对象,结果为true

hashCode:

是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值。

支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。

HashMap对象是根据其Key的hashCode来获取对应的Value。

在重写父类的equals方法时,也重写hashcode方法,使相等的两个对象获取的HashCode也相等。

这样当此对象做Map类中的Key时,两个equals为true的对象其获取的value都是同一个,比较符合实际。

参考资料:

百度百科 ------ hashcode

百度百科 ------ equals

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式