美文网首页
在重写equals方法的时候为什么需要重写hashCode方法?

在重写equals方法的时候为什么需要重写hashCode方法?

作者: thinkme | 来源:发表于2020-10-15 20:08 被阅读0次

    生活平静而美好。

    今天聊一聊面试题 《在重写equals方法的时候为什么需要重写hashCode方法?》(equals方法与hashCode方法的区别与联系)

    1. 编程中经常会用到HashMap,HashSet等数据结构。

    2. 这个数据结构都是由键值对组成的,如果键值对的键是对象,程序会根据对象返回的 hashCode 来确定值所在的位置。

    3. 我们通常认为两个内容相同的对象是相等的,并通过重写 equals 方法来达到这个目的。

    4. 由于对象默认返回 hashCode 是对象的地址值,当我们把上面相等的对象作为 HashMap 的键的时候,程序会定位到两个不同的位置的值,这种结果其实是不合适的。

    5. 这也就是为什么我们在重写 equals 方法的时候,往往需要重写 hashCode,让相等的对象返回相同的 hashCode 的原因。

    相关文章

      网友评论

          本文标题:在重写equals方法的时候为什么需要重写hashCode方法?

          本文链接:https://www.haomeiwen.com/subject/fcfhpktx.html