为什么在hashMap中重写equals()要先重写hashCode()
hashMap底层是一个链表散列的结构,也就是数组和链表的组合,在hashMap中put的时候要先判断一下数组的长度是否为空,如果为空的话就要先进行扩容,如何存到相应的位置;如果数组长度不为空,那么就代表数组中原来有值,那就要对key的hashCode进行重新计算,如果数组中已经存在的key的值的hashCode没有和当前key的HashCode相同的话,就把当前的key存到数组中hashCode当对应的位置,如果hashCode有相同,就用equals()去比较内容一样不一样,一样的话就覆...
原创
2021-12-13 20:10:35 ·
428 阅读 ·
0 评论