为什么重写equals以后还要重写hashcode

Posted wangzhiqiang004

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么重写equals以后还要重写hashcode相关的知识,希望对你有一定的参考价值。

有人说要满足hash规则:两个对象相等,hash值一定要相等,我觉得这不是一个规范问题

因为在一些场景,比如hashSet、hashMap 里面判断是否是同一个元素,是调用了hashcode方法的,如果在重写equals方法以后,没有重写hashcode,那么两个对象equals比较返回true,二hashcode值不一样,往

hashset里面存 ,就会存入两个相同的元素。

以上是关于为什么重写equals以后还要重写hashcode的主要内容,如果未能解决你的问题,请参考以下文章

为什么重写了equals(),还要重写hashCode()?

为什么重写equals还要重写hashcode

为什么重写equals还要重写hashcode

重写了equals方法为何需要重写 hashCode

重写hashcode和equals怎么重写

为什么重写equals()就要重写hashCode()