【Java基础】为什么重写equals()方法一定要重写hashCode()方法

equals()方法:比较两个对象是否相同。

1)用 == 号比较两个对象的内存地址,如果两个对象指向的是同一个内存地址,返回true。

2)否则继续比较字符串的值,如果值相同,返回true。

hashCode()方法:计算对象的哈希值。

哈希值是一个整数,快速判断对象在哈希表中的存储位置。

         在哈希表中存储对象,首先用对象的哈希值来确定对象在哈希表中的位置然后再用equals方法判断两个对象是否冲突。如果两个对象的equals方法返回true,则hashCode值一定相等。反之,如果hashCode相等,则对象不一定相同。

        因此为了保持一致性,重写equals方法一定重写hashCode方法,保证相同的对象哈希值相同,避免在哈希表中出现错误的行为。

你可能感兴趣的:(#,Java基础面试题,java,开发语言,面试)