摘要:
PriorityQueue 是一个优先级队列,其底层原理采用二叉堆实现。我们先来看看它的类声明: PriorityQueue 继承了 AbstractQueue 抽象类,具有队列的基本特性。 二叉堆 由于 PriorityQueue 底层采用二叉堆来实现,所以我们有必要先介绍下二叉堆。 二叉堆从结构 阅读全文
摘要:
TreeSet 是 Set 集合的红黑树实现,但其内部并没有具体的逻辑,而是直接使用 TreeMap 对象实现。我们先来看看 TreeSet 的定义。 可以看到 TreeSet 实现了 NavigableSet 接口,而 NavigableSet 接口又继承了 接口。SortedSet 接口又继承了 阅读全文
摘要:
LinkedHashSet 继承了 HashSet,在此基础上维护了元素的插入顺序。 原理 LinkedHashSet 的源码非常简单,只有简单的四4个构造方法。 但我们不是说 HashSet 还维护了元素的插入顺序么?那这部分代码写在哪里呢? 这里我们要注意一个细节,即 LinkedHashSet 阅读全文
摘要:
HashSet 是 Set 集合的哈希实现,其继承了 AbstractSet 抽象类,并实现了 Set 接口。 原理 为了深入理解 HashSet 的原理,我们将从类成员变量、构造方法、核心方法两个方面逐一介绍。 类成员变量 从类成员变量我们可以知道,HashSet 内部使用 HashMap 存储, 阅读全文