关于上面拆分链表的举例,往新数组搬时,比如下标3的位置,是一个链表,那扩容时,遍历链表上的每一个Node e,计算(e.hash & oldCap),若为0,则扩容前后,该Node所在的位置不变,之前挂下标为3的链表里,那扩容后还挂下标为3的链表里。PS:JDK1.7下,HashMap扩容时,因为是头插法(比如下标1的位置上,Node链为Node A -> NodeB ,迁到新数组就是Node B -> NodeA),并发时,就可能会出现死循环,因此,JDK1.8时改为了尾插法。这也是红黑树自平衡的原因。