从源码上来分析:
linkedlist:
public boolean add(E e) {
//新增一个元素 默认是在链表的最后添加进的那个元素的后面
linkLast(e);
return true;
}
void linkLast(E e) {
//将之前的last赋值给l
final Node<E> l = last;
//将这个对象放到链表里面并生成新对象
final Node<E> newNode = new Node<>(l, e, null);
//将新对象赋值给最后一个插入的对象
last = newNode;
//如果链表为空,则这个元素就是第一个元素
if (l == null)
first = newNode;
else
//将以前的最后一个对象的下一个对象设置为新的元素
l.next = newNode;
//链表长度+1
size++;
//操作次数+1
modCount++;
}
//linkedlist内部的链表结构
private static class Node