JDK 1.8 LinkedList 关键代码分析 重要属性和add


    /**
     * 有序(输入有序),不唯一
     * 底层实现是双向链表
     * 易修改,不易查询
     */
public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable
{
    //集合的大小
    transient int size = 0;

    //头节点
    transient Node<E> first;

     //尾节点
    transient Node<E> last;
     /**
     * 节点内部类
     **/
      private static class Node<E> {
        E item; //元素的内容
        Node<E> next;//下一个节点
        Node<E> prev;//上一个节点
        }
    
/**
* 添加一个元素
* 在尾添加
**/    
    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++;
    }
}
posted @ 2023-01-18 15:52  李悠然  阅读(15)  评论(0编辑  收藏  举报