本文基于jdk1.8之后引入了红黑树
1.是否一定不存在长度大于等于8的链表
可以有
扩容条件:元素超过数组大小的75%
树化条件:桶下元素 ≥ 8 且数组长度 ≥ 64
可能加入元素后并没有到扩容的地步,但是某一个桶下面链表确实超了,这时就不会树化
2.扩容一定会导致某一个桶下面的链表打散吗?
只是大概率,但不是必然
(假如这批元素的hashCode对扩容后新数组的长度取模后刚好还落在同一个桶)
3.只有删除元素会导致树退化成链表吗?
扩容后如果树元素小于等于6则退化成链表
(扩容后这不是算是把所有节点重新安排了一遍吗,算是退化吗?
可以看看:HashMap扩容全流程-CSDN博客)