关于重写equals和hashcode的一些理解

个人觉得主要是作用于哈希结构,如hashmap等。
将一个键值对对象存入hashmap中,首先对键值进行hashcode,通过返回的整数定位到存储键的桶,由于hash冲突的存在,可能导致不同的键hashcode是一样的,因此需要对该桶上的链表进行equals遍历判断。如果重写equals而没有重写hashcode,可能因为两个相同对象(指两个对象的属性值都相同)的hashcode不同,导致其没有进入同一个桶,被判定为两个不同对象(尽管它们的equals是相等的)。请评论区大神多多指教!!!

上一篇:hashCode 的值是怎么生成的?对象内存地址吗?


下一篇:java.lang.Object-hashCode()方法介绍