## LinkedList源码分析(三)
public class LinkedList<E> {
/**
* 有效元素个数
*/
private int size = 0;
/**
* 第一个Node节点首地址
*/
private Node<E> first;
/**
* 最后一个Node节点的首地址
*/
private Node<E> last;
/**
* 私有化静态成员内部类
*
* @param <E> 和MyArrayList一致的泛型
*/
private static class Node<E> {
/**
* 在LinkedList中保存的Node节点内元素内容
*/
E item;
/**
* 下一个Node节点引用,保存下一个节点的空间首地址
*/
Node<E> next;
/**
* 上一个Node节点的,保存上一个节点空间的首地址
*/
Node<E> prev;
/**
* Node<E>没有无参数构造方法,创建对应Node对象,需要保存前后节点位置,同时需要
* 保证需要存储的数据,在当前Node节点中
*
* @param prev 前节点位置
* @param element 存储的元素
* @param next 后节点位置
*/
public Node(Node<E> prev, E element, Node<E> next) {
this.item = element;
this.prev = prev;
this.next = next;
}
}
/**
* 空LinkedList集合,只是准备了一个所谓的链表头
*/
public LinkedList() {
}