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放在该位置的链表末端。
相关文章推荐
- 数据结构单向链表的理解
- 数据结构:数组、链表、栈、队列的理解
- HashMap的数据结构---示意图和结构的理解
- 数据结构——基于java的链表实现(真正理解链表这种数据结构)
- 一个程序带你深刻理解数据结构—链表
- 链表的理解与实现[数据结构]
- 对链表的相关操作及数据结构的再理解
- 数据结构之线性表之顺序表和链表(通过数据结构角度深入理解arrayList和linkedList的特性)
- 对链表的相关操作及数据结构的再理解
- 链表数据结构的简单理解
- hashMap的底层数据结构:数组+链表
- 常用的数据结构String、链表、Map、hashmap、hashtable区别
- 深入理解数据结构之链表
- C语言数据结构之单向链表(已经调试可以实现相应的功能了,可是还是有几个问题现在还是不大理解,希望大家能够一起探讨)
- JAVA数据结构-单链表和HashMap
- 深入理解数据结构之链表
- hashmap数据结构 数组+链表
- 深入解析Java对象的hashCode和hashCode在HashMap的底层数据结构的应用
- 数据结构-从宏观上理解数据结构
- 数据结构 用单链表表示集合的并交差运算