hashMap底层实现原理
当添加一个元素(key-value)是,首先计算元素key的hash值,以此确定插入数组中的位置,但是可能存在同一hash值的元素,如果equals相同则覆盖,否则添加到同一hash值的元素的后面,他们在数组的同一位置,形成了链表,同意各链表上的hash值相同,所以说数组存放的是链表。而当链表长度太长时,链表就转换成为红黑树,这样大大提高了查找效率。
当发现链表中的元素个数大于8之后还会判断一下当前数组的长度,如果数组的长度小于64时,此时并不会转化为红黑树,而是进行扩容,只有当链表中的元素个数大于8且数组的长度大于(K的长度)等于64时才会将链表转为红黑树。