码迷,mamicode.com
首页 >  
搜索关键字:红黑树    ( 1467个结果
ConcurrentHashMap实现原理以及源码分析
ConcurrentHashMap是HashMap的高并发版本,是线程安全的,而HashMap是非线程安全的 一、底层实现 底层结构跟hashmap一样,都是通过数组+链表+红黑树实现的,不过它要保证线程安全性,所以在源码上要复杂一些 线程安全是通过CAS和synchronized实现的 源码分析 ...
分类:其他好文   时间:2018-08-04 18:57:02    阅读次数:157
JDK1.7&1.8源码对比分析【集合】HashMap
前言 在JDK1.8源码分析【集合】HashMap文章中,我们分析了HashMap在JDK1.8中新增的特性(引进了红黑树数据结构),但是为什么要进行这个优化呢?这篇文章我们通过对比JDK1.7和1.8来分析优化的原因。 众所周知,HashMap底层是基于 数组 + 链表 的方式实现的,不过在JDK ...
分类:其他好文   时间:2018-08-04 12:34:22    阅读次数:180
webpack源码之ast简介
什么是AST 树是一种重要的数据结构,由根结点和若干颗子树构成的。 根据结构的不同又可以划分为二叉树,trie树,红黑树等等。今天研究的对象是AST,抽象语法树,它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。通过操作这棵树,可以精准的定位到声明、赋值、运算语句,从而实 ...
分类:Web程序   时间:2018-07-31 21:47:21    阅读次数:335
霍夫曼树 二三树 红黑树 B树 B+树
霍夫曼树: 特点:带权路径长度最短,∑(每个节点的权重)*(每个节点的层数) 生成:每次合并权值最小的两个节点(子树)建立二叉树,将合并后的子树作为新节点,权值为节点(子树)权值之和 二三树: 特点:平衡查找树,每个叶子节点为空且层数相同,查找时间复杂度O(lgn) 生成:2节点包含一个key和两个 ...
分类:其他好文   时间:2018-07-29 23:25:54    阅读次数:221
红黑树
红黑树的五个性质: 性质1. 节点是红色或黑色。 性质2. 根是黑色。 性质3. 所有叶子都是黑色(叶子是NIL节点)。 性质4. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点) 性质5. 从任一节点到其每个叶子的所有简单路径 都包含相同数目的黑色节点。 ...
分类:其他好文   时间:2018-07-29 20:03:12    阅读次数:145
HashMap实现原理
HashMap实现原理 HashMap的底层使用数组+链表/红黑树实现。 这表示HashMap是Node数组构成,其中Node类的实现如下,可以看出这其实就是个链表,链表的每个结点是一个映射。 HashMap的每个下标都存放了一条链表。 常量/变量定义 关于modCount的作用见 "这篇blog" ...
分类:其他好文   时间:2018-07-28 21:59:42    阅读次数:202
平衡查找树
1.一棵2-3查找树或为一颗空树,或由以下结点组成: (1)2-结点,含有一个键(及其对应的值)和两条链接,左链接指向的2-3树中的键都小于该结点,右链接指向的2-3树中的键都大于该结点。 (2)3-结点,含有两个键(及其对应的值)和三条链接,左链接指向的2-3树中的键都小于该结点,中链接指向的2- ...
分类:其他好文   时间:2018-07-27 01:11:15    阅读次数:164
HashMap 数据结构分析
这篇文章主要说清楚HashMap底层数据结构,以及底层数组大小为什么是2的整数次幂。 注:该源码基于JDK8 1、HashMap 数据结构? HashMap 底层数组结构刚开始是数组+链表实现,但是当链表上的节点多余一定值(8)的时候,将链表换成红黑树。 2、我们从 put(K key, V val ...
分类:其他好文   时间:2018-07-24 19:14:20    阅读次数:130
AVL树、红黑树以及B树介绍
简介 首先,说一下在数据结构中为什么要引入树这种结构,在我们上篇文章中介绍的数组与链表中,可以发现,数组适合查询这种静态操作(O(1)),不合适删除与插入这种动态操作(O(n)),而链表则是适合删除与插入,而查询效率则就比较慢了,本文要分享学习的树就是为了平衡这种静态操作与动态操作的差距。 一、二叉 ...
分类:其他好文   时间:2018-07-22 15:24:11    阅读次数:178
Java 集合学习--HashMap
一、HashMap 定义 HashMap 是一个基于散列表(哈希表)实现的键值对集合,每个元素都是key-value对,jdk1.8后,底层数据结构涉及到了数组、链表以及红黑树。目的进一步的优化HashMap的性能和效率。允许key和value为NULL,同样非线程安全。 ①、继承AbstractM ...
分类:编程语言   时间:2018-07-21 17:23:59    阅读次数:196
1467条   上一页 1 ... 54 55 56 57 58 ... 147 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!