[TOC] 谈到TreeSet的特点,估计大家脑海里想到的都是:有序,不可重复,红黑树,基于Treemap实现,自定义排序等特点。这篇博客帮助大家从源码梳理下TreeSet的知识点。 1.构造函数 TreeSet提供了四种构造器 TreeSet() TreeSet(Collection c) Tre ...
分类:
编程语言 时间:
2019-04-28 15:35:32
阅读次数:
142
Java基础 JVM Spring zookeeper redis dubbo 多线程 Mysql 设计模式 队列 网络协议 RPC MQ 算法 工具 项目设计 Linux 分布式 ...
分类:
其他好文 时间:
2019-04-23 09:32:06
阅读次数:
133
红黑树介绍红黑树(Red-Black Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。红黑树的每个节点上都有存储位表示节点的颜色,颜色是红(Red)或黑(Black)。红黑树的特性: 关 ...
分类:
编程语言 时间:
2019-04-22 18:18:05
阅读次数:
183
ConcurrentHashMap这个类在java.lang.current包中,这个包中的类都是线程安全的。ConcurrentHashMap底层存储数据的结构与1.8的HashMap是一样的,都是数组+链表(或红黑树)的结构。在日常的开发中,我们最长用到的键值对存储结构的是HashMap,但是我... ...
分类:
编程语言 时间:
2019-04-22 00:40:52
阅读次数:
175
增加红黑树这个存储结构 在Java8中,为什么要增加红黑树这种数据结构来进行存储,而不是全部使用链表来进行存储呢? 1.因为攻击者可以构造大量具有相同hashCode的内容,使其全部放在同一个列表中,这样,在查找的时候,所花费的时间会很长。这个时候,如果采用红黑树这个结构来进行存储,那么其查找的效率 ...
分类:
编程语言 时间:
2019-04-19 00:40:51
阅读次数:
181
摘要 前一段时候脉脉上有个段子 面试官问候选人什么时候红黑树,候选人答不太熟悉,不知道具体怎么实现的,最后面试官问候选人有什么想问他的。候选人问面试官什么是红黑树,面试官支支吾吾了半天,最后说太久了,都忘了。 不知道是不是真的,但是面试结束的时候,面试官通常会问下候选人 你有没有想要问我的,今天结合 ...
分类:
其他好文 时间:
2019-04-16 21:43:21
阅读次数:
189
什么是跳表? 跳表有哪些特性? 跳表相比于红黑树如何呢? 为什么Redis选择使用跳表来实现有序集合? ...
分类:
编程语言 时间:
2019-04-14 14:19:00
阅读次数:
145
如何阅读jdk源码?
1. 设定目标
2. 提出问题
3. 如何提出问题
4. 带着问题阅读源码,忽略不必要的细节,死磕重要的细节
5. 多做比较
6. 多做实验
7. 耐心&坚持
8. 彩蛋
分类:
其他好文 时间:
2019-04-07 23:38:56
阅读次数:
258
出处:https://www.jianshu.com/p/86a1fd2d7406 写在前面,好像不同的教材对b树,b-树的定义不一样。我就不纠结这个到底是叫b-树还是b-树了。 如图所示,区别有以下两点: B+树中只有叶子节点会带有指向记录的指针,而B树则所有节点都带有,在内部节点出现的索引项不会 ...
分类:
其他好文 时间:
2019-04-06 20:30:20
阅读次数:
200
一、红黑树的定义: (1)根节点是黑色的, (2)所有叶子节点上不存储数据,并且颜色都为黑色。 (3)红色节点相邻的节点不能为红色。(红色节点邻居节点只能是黑色节点) (4)每一个节点,从该节点到达可达叶子节点的所有路径都包含了相同数量的黑色节点。 图示例子 红黑树的时间复杂度为O(log n)。由 ...
分类:
其他好文 时间:
2019-04-06 14:19:51
阅读次数:
138