LinkedList源码分析(三)

## 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() {
    }
上一篇:使用javalang做Java词法分析


下一篇:带头双向链表的增删打印等操作实现