本文最后更新于60 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
因为 Java 源代码贡献者经过大量实验发现,碰撞 8 次发生的概率极低,如果出现碰撞 8 次情况,说明可能是元素本身或者 hash 函数问题,因此为了挽回极端情况下的性能,将链表转为红黑树。
当红黑树长度小于等于 6 时,会转回链表,因为如果阈值设置为 8,则会频繁发生红黑树和链表的转变,会大量浪费资源,中间有个差值 7 可以进一步防止两者转变。
因为 Java 源代码贡献者经过大量实验发现,碰撞 8 次发生的概率极低,如果出现碰撞 8 次情况,说明可能是元素本身或者 hash 函数问题,因此为了挽回极端情况下的性能,将链表转为红黑树。
当红黑树长度小于等于 6 时,会转回链表,因为如果阈值设置为 8,则会频繁发生红黑树和链表的转变,会大量浪费资源,中间有个差值 7 可以进一步防止两者转变。