【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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。