1. 程式人生 > >jdk源碼閱讀筆記之java集合框架(四)(LinkedList)

jdk源碼閱讀筆記之java集合框架(四)(LinkedList)

ray private array public 源碼閱讀 jdk源碼閱讀 oid color 解釋

關於LinkedList的分析,會從且僅從其添加(add)方法入手。

因為上一篇已經分析過ArrayList,相似的地方就不再敘述,關註點在LinkedList的特點。

屬性:

技術分享
   /**
     *鏈表頭
     */
    transient Node<E> first;

    /**
     * 鏈表尾
     */
    transient Node<E> last;
View Code

從以上兩個屬性可以得出LinkedList是基於雙向鏈表實現的。

節點代碼(無需過多解釋):

技術分享
 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; } }
View Code

LinkedList的add方法:

LinkedList中有多個add方法,大同小異,遂選取其一進行分析。

/**
     * 插入指定元素到list尾部
     
*/ public boolean add(E e) { linkLast(e); return true; } /** * Links e as last element. */ 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++;//此系列博客中有詳細解釋 }

jdk源碼閱讀筆記之java集合框架(四)(LinkedList)