LinkedList
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, java.io.Serializable
通过源码定义可以看出
LinkedList 继承AbstractSequentialList的双向链表,可以被当作堆栈,队列或者双端队列进行操作
LinkedList是非同步的,实现了List,deque,Cloneable(可克隆),Serializable(可用作传输)
LinkedList底层数据结构是基于双向循环链表的,且头结点中不存放数据
头尾相连,由此可看出双向链表结构,每个数据都是有上下指针连接彼此
上下指针又称为节点,存放前后节点的位置信息
LinkedList包含两种属性
private transient Node<E> first;
private transient Node<E> last;
private transient int size=0;//链表长度
modCount;'//链表修改次数
看下Node<E>的结构
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; } }
构造方法:
public LinkedList() {
header.next = header.previous = header;
}
public LinkedList(Collection<? extends E> c) {
this();
addAll(c);
}