(面试题)HashMap树化条件+为什么 扎心柯 2023-02-02 173 阅读1分钟 树化条件:链表长度大于8,并且数组长度大于64 为什么: 链表长度大于8,是因为泊松分布。 源码中有个注释,写着jdk官方测出的数据,往16个桶中随机放入12个小球,一个桶中被放入8个小球 的概率是**亿分之六**,这个概率已经很低了 数组长度大于64,是因为防止扩容带来反树化。 比如原先桶中有8个元素已经树化,扩容后高位链里面有4个元素,地位链里面有4个元素,就需要反树化。 所以jdk认为,数组必须足够大,防止原先树化的链表经过扩容后又反树化