您的位置:首页 > 理论基础 > 数据结构算法

HashMap数据结构理解(位桶 + 链表+红黑色)

2019-05-12 23:32 337 查看

1.HashMap jdk 1.8有哪些变化:
在jdk1.6,jdk1.7 中HashMap 采用 位桶+链表 方式jdk1.8 中采用 位桶 + 链表 + 红黑树 方式(当链表大于8的时候转换为红黑树)优势:查询性能得都很大提升。

2.什么是红黑树,优势劣势:
红黑树是平衡二叉树的一种算法提现(AVL、Treap…),它有很多限制组成,其中包括
(1).每隔节点不是红色就是黑色。
(2).跟节点永远是黑色。
(3).所有叶子节点都是黑色。
(4).每个叶子不会有两个连续的节点。
(5).从任一节点到其子树中每个叶子节点的路径都包含相同数量的黑色节点。中和来说 红黑树中最长路径就是一条红黑交替的路径。(可以多维度去理解它在内存中的位置区间)
优劣势:优点,由于限制所以红黑树的深度不像二叉树那么深,只要保持平衡,它的检索性能比较高。
缺点,红黑树在进行插入或删除操作的时候由于需要维护红黑树的特点,所以需要提供树结构维护。

3. HashMap描述
(1). Hash索引的计算,根据HashMap 长度计算与计算出的hashCode值做位于运算决定索引/位置(结论:长度取2次方是减少冲突的最好方式)
(2). Hash冲突 hashMap使用链表发解决冲突,当发生冲突的时候将key/vlaue放在该位置的链表末端。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: