Java 中 hashCode 和 equals ⽅法是什么?它们和 == 各有什么区别?

Java 中, hashCode equals ⽅法都是 Object 类的⽅法。它们的作⽤分别如下:
hashCode ⽅法返回对象的哈希码,⽤于⽀持基于哈希表的集合,如 HashMap HashSet 等。如果两个对象
equals ⽅法返回 true ,则它们的 hashCode ⽅法必须返回相同的值,反之则不需要。
equals ⽅法⽤于⽐较对象是否相等。默认情况下, equals ⽅法使⽤的是 == 操作符,即只有两个对象引⽤指
向同⼀个对象时才会返回 true 。但是,⼤部分情况下,我们需要重写 equals ⽅法来实现⾃⼰定义的相等规
则。
两者之间的区别在于, hashCode ⽅法返回的是⼀个 int 类型的数值,⽽ equals ⽅法返回的是⼀个 boolean 类型
的值。
hashCode ⽅法⽤于快速⽐较两个对象是否不同,因为如果它们的哈希码不同,那么它们肯定不相等。 equals ⽅法
则⽤于判断两个对象是否真正相等,这个判断⽐较复杂,需要根据对象的实际情况来定义。
另外,需要注意的是, == 操作符⽤于⽐较两个对象的引⽤是否相等,即它们是否指向同⼀个对象。⽽ equals ⽅法
则⽤于⽐较两个对象的值是否相等。
Java 中,对象的值⽐较往往需要根据对象的实际情况来定义,因此⼀般需要重写 equals ⽅法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值