摘要: Stack 是先进后出的栈结构,其并不直接实现具体的逻辑,而是通过继承 Vector 类,调用 Vector 类的方法实现。 核心方法 Stack 类代码非常简单,其有 3 个核心方法:push、pop、peek。 push 可以看到 push 方法直接调用 Vector 的 addElement 阅读全文
posted @ 2019-08-26 22:54 陈树义 阅读(466) 评论(1) 推荐(1) 编辑
摘要: Vector 的底层实现以及结构与 ArrayList 完全相同,只是在某一些细节上会有所不同。这些细节主要有: 线程安全 扩容大小 线程安全 我们知道 ArrayList 是线程不安全的,只能在单线程环境下使用。而 Vector 则是线程安全的,那么其实怎么实现的呢? 其实 Vector 的实现很 阅读全文
posted @ 2019-08-26 22:53 陈树义 阅读(512) 评论(0) 推荐(0) 编辑
摘要: LinkedList 是链表的经典实现,其底层采用链表节点的方式实现。 从类继承结构图可以看到,LinkedList 不仅实现了 List 接口,还实现了 Deque 双向队列接口。 原理 为了深入理解 LinkedList 的原理,我们将从类成员变量、构造方法、核心方法两个方面逐一介绍。 类成员变 阅读全文
posted @ 2019-08-26 22:53 陈树义 阅读(644) 评论(0) 推荐(1) 编辑
摘要: ArrayList 是 List 集合的列表经典实现,其底层采用定长数组实现,可以根据集合大小进行自动扩容。 原理 为了深入理解 ArrayList 的原理,我们将从类成员变量、构造方法、核心方法两个方面逐一介绍。 类成员变量 构造方法 ArrayList 一共有 3 个构造方法: 从第一个构造方法 阅读全文
posted @ 2019-08-26 08:52 陈树义 阅读(1084) 评论(0) 推荐(5) 编辑