hashmap:
底层数据结构不同:
1.7是数组加链表,1.8是红黑树加数组。
为何用红黑树:,为何不上来直接树化,树化值为为啥是8,合适会树化,何时会退化为链表?
1.红黑树为了避免dos攻击,防止性能下降,树化树偶然那个情况
1.1哈希表查找时候,更新时间复杂度为o1,红黑树的查找时间复杂度为olog2n,TreeNode占用空间也比普通的大,如非不要,盖是用红黑树
1.2hash值如果足够随机,hash按照posong分布,负载因子为0.75情况下,长度超过8为0.000006,选择8最小树化
树化2条件:数组超过64或链表长度超过取值
退化情况一:在扩容时如果拆分数,<5退化为链表
退化情况二:根节点,左右孩子有一个为空
索引如何计算:
计算对象的hashCoe(),在进行HashMap的hash()方法进行二次哈希,最后得到索引值
二次哈希是为了分不均匀
2的n次mi效率更高 hash &odlCap==0 留在原位置,,否则计算新位置=旧位置
+oldCap
标签:黑树,面试题,hash,哈希,专辑,链表,数组 From: https://www.cnblogs.com/zyb-luckey/p/17966086