乐趣区

关于面试:在重写equals方法的时候为什么需要重写hashCode方法

在重写 equals 办法的时候为什么须要重写 hashCode 办法?

生存平静而美妙。

明天聊一聊面试题《在重写 equals 办法的时候为什么须要重写 hashCode 办法?》(equals 办法与 hashCode 办法的区别与分割)

  1. 编程中常常会用到 HashMap,HashSet 等数据结构。
  2. 这个数据结构都是由键值对组成的,如果键值对的键是对象,程序会依据对象返回的 hashCode 来确定值所在的地位。
  3. 咱们通常认为两个内容雷同的对象是相等的,并通过重写 equals 办法来达到这个目标。
  4. 因为对象默认返回 hashCode 是对象的地址值,当咱们把下面相等的对象作为 HashMap 的键的时候,程序会定位到两个不同的地位的值,这种后果其实是不适合的。
  5. 这也就是为什么咱们在重写 equals 办法的时候,往往须要重写 hashCode,让相等的对象返回雷同的 hashCode 的起因。
退出移动版