hasCode和equals的区别

 我来答
会哭的礼物17
2022-06-25 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6142
采纳率:100%
帮助的人:34.1万
展开全部
*****hascode()这个方法返回对象的散列码,返回值是int类型的散列码。

对象的散列码是为了更好的支持基于哈希机制的Java集合类,例如 Hashtable, HashMap, HashSet 等。支持此方法是为了提高哈枝氏希表(例如 java.util.Hashtable 提供的哈希表)的性能。

*****equals方法对比的是两个引用所指的对象是否是同一个引。

而我们往往需要用equals来判断 2个对象是否等价,而非验猛厅散证他们的唯一性。这样我们在实现自己的类时,就要重写equals.

equals比较开放,对于业务需求不同,可以自定义其比较的规则,比如string就对equals进行了重写,规定字符串里的字符相等就返回true

*****

在程序执行期间,只要equals方法的比较操作用到的信息没有被修改,那么对这同一个对象调用多次,hashCode方法必须始终如一地返回同一个整数。

如果两个对象根据equals方法比较是相等的,那么调用两个对象的hashCode方法必须返回相同的整数结果。

如果两个对象根据equals方法比较是不等的,则hashCode方法不一定得返回不同的整数伏梁。

hasCode相等,equals未必相等

*****重写equals方法时最好重写一下hasCode方法,确保一致性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
名片
2024-10-28 广告
作为优菁科技(上海)有限公司的一员,Altair HyperWorks是我们重点代理的CAE软件套件。该软件以其全面的仿真能力、丰富的建模工具和高效的优化设计功能著称,广泛应用于汽车、航空航天、能源及电子等行业。HyperWorks通过集成... 点击进入详情页
本回答由名片提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式