面试题专辑

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

 

posted @   langpo  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示