hashmap什么时候转红黑
时间: 2023-08-24 17:43:28 浏览: 124
(001)HashMap之链表转红黑树-treefyBin方法.docx
HashMap在插入键值对的时候,会根据键的哈希值计算出在数组中的位置,如果该位置上已经存在了一个或多个键值对,那么它们会以链表的形式存储在该位置上。当链表上的节点数达到了一个阈值(默认为8),且当前HashMap的容量大于等于64时,就会将链表转化为红黑树,这样可以提高查找、插入和删除操作的效率。
将链表转化为红黑树的过程,需要对链表上的节点进行排序,然后将排序后的节点依次插入到红黑树中。如果插入节点后,红黑树的高度超过了一定的阈值(默认为6),就会自动将红黑树转化为链表,以避免过深的树结构影响性能。当然,如果节点数又达到了阈值,就又会将链表转化为红黑树,如此往复,以保持HashMap的高效性。
总之,HashMap将链表转化为红黑树的条件是:链表上的节点数达到一定阈值,且当前HashMap的容量大于等于64;红黑树转化为链表的条件是:红黑树的高度超过一定阈值。
阅读全文