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

生存平静而美妙。

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

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