hashmap选择红黑树,为啥hashmap不直接采用红黑树,为什么达到8个才转红黑树
为什么直接采用红黑树
因为红黑树需要进行左旋,右旋操作, 而单链表不需要,
主要考察链表和红黑树对比:
1)如果元素小于8个,查询成本高,新增成本低
2)如果元素大于8个,查询成本低,新增成本高
HashMap在jdk1.8之后引入了红黑树的概念,表示若桶中链表元素超过8时,会自动转化成红黑树;若桶中元素小于等于6时,树结构还原成链表形式。
原因:
红黑树的平均查找长度是log(n),长度为8,查找长度为log(8)=3,链表的平均查找长度为n/2,当长度为8时,平均查找长度为8/2=4,这才有转换.
转载
2020-06-16 16:31:39 ·
5359 阅读 ·
0 评论