参考资料: 此博客写得特别好.可以观看哟 https://www.cnblogs.com/leesf456/p/5308843.html https://www.cnblogs.com/leesf456/p/5242233.html
一、LinkedList数据结构
还是老规矩,先抓住LinkedList的核心部分:数据结构,其数据结构如下
说明:如上图所示,LinkedList底层使用的双向链表结构,有一个头结点和一个尾结点,双向链表意味着我们可以从头开始正向遍历,或者是从尾开始逆向遍历,并且可以针对头部和尾部进行相应的操作。
三、LinkedList源码分析
3.1 类的继承关系
public class LinkedList
extends AbstractSequentialList
implements List, Deque, Cloneable, java.io.Serializable
说明:LinkedList的类继承结构很有意思,我们着重要看是Deque接口,Deque接口表示是一个双端队列,那么也意味着LinkedList是双端队列的一种实现,所以,基于双端队列的操作在LinkedList中全部有效。
3.2 类的内部类
复制代码
private static class Node<E> {
E item; // 数据域
Node<E> next; // 后继
Node<E> prev; // 前驱
// 构造函数,赋值前驱后继
Node(Node<E> prev, E element, Node<E> next) {
this.item = element;
this.next = next;
this.prev = prev;
}
}
复制代码
说明:内部类Node就是实际的结