LinkedList源码分析作为List使用

文章资讯 2020-01-19 13:26:55

LinkedList源码分析作为List使用

LinkedList 底层通过双向集合的数据结构实现

内存无需连续的空间保证
元素查找只能是顺序的遍历查找
针对增删操作具有更好的性能

 JDK 文档。

Iterable 接口:提供迭代器访问能力,实现此接口允许对象通过 for-each 循环语句进行遍历。
Collection 接口:集合层次结构中的根接口。集合中的一组对象称为元素。一些集合允许重复的元素,而另一些则不允许。有些是有序的,而另一些是无序的。 JDK 不提供此接口的任何直接实现,它提供了更多特定子接口的实现,例如 Set 和 List 。该接口通常用于传递集合并在需要最大通用性的地方使用。
AbstractCollection 抽象类:此类提供了 Collection 接口的基本实现,以最大程度地减少实现此接口所需的工作。
List 接口:Collection 接口的子接口,有序集合(也称为序列)。用户通过该接口可以精确控制列表中每个元素的插入位置。用户可以通过其整数索引(集合中的位置)访问元素,并在其中搜索元素。
AbstractList 抽象类: 此类提供 List 接口的基本实现以最大程度地减少由“随机访问”数据存储(例如数组) 实现此接口所需的工作。
AbstractSequentialList 抽象类:此类提供了 List 接口的基本实现,以最大程度地减少由“顺序访问”数据存储(例如集合)实现此接口所需的工作。对于随机访问数据(例如数组),应优先使用 AbstractList 类。
Queue 接口:设计用于在处理之前容纳元素的集合。 除了基本的 Collection 接口操作之外,队列还提供其他插入,提取和检查操作。这些方法都以两种形式存在:一种在操作失败时引发异常,另一种返回特殊的值(取决于操作, null 或 false)。插入操作的后一种形式是专为容量受限的 Queue 实现而设计的;在大多数实现中,插入操作不会失败。
Deque 接口:支持在两端插入和删除元素的线性集合。名称 Deque 是“双端队列”的缩写,通常发音为“deck”。大多数Deque 的实现都对元素可能包含的元素数量没有固定的限制,但是此接口支持容量受限的双端队列以及没有固定大小限制的双端队列。
Cloneable 接口:该标记接口提供实例克隆的的能力。
Serializable 接口:该标记接口提供类序列化或反序列化的能力。