【Java基础】为什么重写equals()方法一定要重写hashCode()方法
2023-12-24 14:40:02
equals()方法:比较两个对象是否相同。
1)用 == 号比较两个对象的内存地址,如果两个对象指向的是同一个内存地址,返回true。
2)否则继续比较字符串的值,如果值相同,返回true。
hashCode()方法:计算对象的哈希值。
哈希值是一个整数,快速判断对象在哈希表中的存储位置。
?????????在哈希表中存储对象,首先用对象的哈希值来确定对象在哈希表中的位置,然后再用equals方法判断两个对象是否冲突。如果两个对象的equals方法返回true,则hashCode值一定相等。反之,如果hashCode相等,则对象不一定相同。
????????因此为了保持一致性,重写equals方法一定重写hashCode方法,保证相同的对象哈希值相同,避免在哈希表中出现错误的行为。
文章来源:https://blog.csdn.net/m0_66517050/article/details/135181216
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!