LinkedList源码分析
-
transient int size = 0; //集合大小
-
transient Node<E> first; //指向头 链表头节点
-
transient Node<E> last; //指向尾 链表尾节点
-
public LinkedList() {} //构造方法
-
add()方法分析:
public boolean add(E e) { linkLast(e); return true; } void linkLast(E e) { 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; size++; modCount++; } 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; } }