底层数据结构是双链表,查询慢,但是首尾操作速度快;关于首尾操作有部分特有的api
linkedlist源码分析:使用尾插法插入元素
void linkLast(E e) {
final Node<E> l = last;//记录插入前的元素地址
final Node<E> newNode = new Node<>(l, e, null);//将该元素的front指针指向了被插入元素的地址
last = newNode;//尾指针指向了新创建的元素
if (l == null)
first = newNode;
else
l.next = newNode;//插入前的元素的rear指针指向该新创建的元素
size++;
modCount++;
}