上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 27 下一页
摘要: PriorityQueue 是一个优先级队列,其底层原理采用二叉堆实现。我们先来看看它的类声明: PriorityQueue 继承了 AbstractQueue 抽象类,具有队列的基本特性。 二叉堆 由于 PriorityQueue 底层采用二叉堆来实现,所以我们有必要先介绍下二叉堆。 二叉堆从结构 阅读全文
posted @ 2019-08-28 21:11 陈树义 阅读(640) 评论(0) 推荐(1) 编辑
摘要: TreeSet 是 Set 集合的红黑树实现,但其内部并没有具体的逻辑,而是直接使用 TreeMap 对象实现。我们先来看看 TreeSet 的定义。 可以看到 TreeSet 实现了 NavigableSet 接口,而 NavigableSet 接口又继承了 接口。SortedSet 接口又继承了 阅读全文
posted @ 2019-08-28 21:10 陈树义 阅读(567) 评论(0) 推荐(0) 编辑
摘要: LinkedHashSet 继承了 HashSet,在此基础上维护了元素的插入顺序。 原理 LinkedHashSet 的源码非常简单,只有简单的四4个构造方法。 但我们不是说 HashSet 还维护了元素的插入顺序么?那这部分代码写在哪里呢? 这里我们要注意一个细节,即 LinkedHashSet 阅读全文
posted @ 2019-08-28 21:09 陈树义 阅读(420) 评论(0) 推荐(1) 编辑
摘要: HashSet 是 Set 集合的哈希实现,其继承了 AbstractSet 抽象类,并实现了 Set 接口。 原理 为了深入理解 HashSet 的原理,我们将从类成员变量、构造方法、核心方法两个方面逐一介绍。 类成员变量 从类成员变量我们可以知道,HashSet 内部使用 HashMap 存储, 阅读全文
posted @ 2019-08-28 21:08 陈树义 阅读(604) 评论(0) 推荐(1) 编辑
摘要: Stack 是先进后出的栈结构,其并不直接实现具体的逻辑,而是通过继承 Vector 类,调用 Vector 类的方法实现。 核心方法 Stack 类代码非常简单,其有 3 个核心方法:push、pop、peek。 push 可以看到 push 方法直接调用 Vector 的 addElement 阅读全文
posted @ 2019-08-26 22:54 陈树义 阅读(467) 评论(1) 推荐(1) 编辑
摘要: Vector 的底层实现以及结构与 ArrayList 完全相同,只是在某一些细节上会有所不同。这些细节主要有: 线程安全 扩容大小 线程安全 我们知道 ArrayList 是线程不安全的,只能在单线程环境下使用。而 Vector 则是线程安全的,那么其实怎么实现的呢? 其实 Vector 的实现很 阅读全文
posted @ 2019-08-26 22:53 陈树义 阅读(513) 评论(0) 推荐(0) 编辑
摘要: LinkedList 是链表的经典实现,其底层采用链表节点的方式实现。 从类继承结构图可以看到,LinkedList 不仅实现了 List 接口,还实现了 Deque 双向队列接口。 原理 为了深入理解 LinkedList 的原理,我们将从类成员变量、构造方法、核心方法两个方面逐一介绍。 类成员变 阅读全文
posted @ 2019-08-26 22:53 陈树义 阅读(645) 评论(0) 推荐(1) 编辑
摘要: ArrayList 是 List 集合的列表经典实现,其底层采用定长数组实现,可以根据集合大小进行自动扩容。 原理 为了深入理解 ArrayList 的原理,我们将从类成员变量、构造方法、核心方法两个方面逐一介绍。 类成员变量 构造方法 ArrayList 一共有 3 个构造方法: 从第一个构造方法 阅读全文
posted @ 2019-08-26 08:52 陈树义 阅读(1085) 评论(0) 推荐(5) 编辑
摘要: 集合系列(一):集合框架概述 Java 集合是 Java API 用得最频繁的一类,掌握 Java 集合的原理以及继承结构非常有必要。总的来说,Java 容器可以划分为 4 个部分: List 集合 Set 集合 Queue 集合 Map 集合 除了上面 4 种集合之外,还有一个专门的工具类: 工具 阅读全文
posted @ 2019-08-23 23:49 陈树义 阅读(2031) 评论(3) 推荐(4) 编辑
摘要: 集合可以说是学习 Java 中最重要的一块知识点了,无论做任何业务系统,集合总是最为基础的那块 API。我第一次接触集合,是在我大三的时候,那时候去面试,面试官问我:你了解过集合吗?可惜那时候没什么项目经验,所以基本没有了解过,因此也错失了机会。 到了现在,我已经工作了5年了,也做过了大大小小十几个 阅读全文
posted @ 2019-08-23 09:06 陈树义 阅读(2810) 评论(4) 推荐(9) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 27 下一页