目录
前言
linkedList的底层是双向链表(jdk1.7之后的原码非循环),非线程安全的;由于是链表不同于数据,链表对新增、删除等性能要比数组好很多(并非一定,部分场景性能也可能相似),但是其查询总是从头开始遍历不如支持随机访问的数组性能高;且链表保存数据不需要像数组一样需要连续的空间。
原码分析
接下来我们针对其原码做以下分析:继承关系、类中属性、构造函数、核心方法 四个方面分析
- AbstractSequentialList:基于list接口,为实现顺序访问的数据存储结构的最小化接口,使用
- 列表迭代器实现随机访问,对于支持随机访的数据应该选择AbstractList
- Deque:双端队列,支持两端元素插入和移除的线性集合
- Cloneable:支持接口,实现
Cloneable
接口,支持Object.clone()方法(CloneNotSupportedException
)- java.io.Serializable:标记接口,支持序列化
继承关系
类中属性
- Node<E> first:集合的