LinkedList源码实现 add
1.首先看add方法
public boolean add(E e) {
//调用linkLast方法传入对象
linkLast(e);
return true;
}
2.linkLast方法实现
/**
* Links e as last element.
*/
void linkLast(E e) {
final Node<E> l = last;
//使用构造方法创建一个新的链表对象,last对象存储到该链表中的下一个元素对象,上一个元素对象传null值
final Node<E> newNode = new Node<>(l, e, null);
//将创建的newNode对象赋值给本LinkedList对象的last元素中
last = newNode;
//判断赋值之前的last对象,如果为空,first属性赋值为本次创建的newNode对象
if (l == null)
first = newNode;
else
//否则原来的last对象中的下一个元素赋值为本次创建的newNode对象
l.next = newNode;
//记录数据长度++
size++;
modCount++;
}
new Node构造方法:
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;
}
}