源码预览
拆分思路
如果e 元素是链表类型,则需要遍历链表,将其一拆为二
故定义了low 、high两个链表的头尾指针。
Node<K,V> loHead = null, loTail = null;
Node<K,V> hiHead = null, hiTail = null;
将e的hash码与原数组容量进行按位与,如果结果为零,则加入低位链表
if ((e.hash & oldCap) == 0) {
if (loTail == null)
loHead = e;
else
loTail.next = e;
loTail = e;
}
如果结果不为零,则加入高位链表
else {