码迷,mamicode.com
首页 > 编程语言 > 详细

jdk源码阅读笔记之java集合框架(四)(LinkedList)

时间:2017-05-13 10:06:33      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:element   代码   open   ansi   阅读   源码阅读笔记   分享   return   pen   

关于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)

标签:element   代码   open   ansi   阅读   源码阅读笔记   分享   return   pen   

原文地址:http://www.cnblogs.com/jw93/p/6846684.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!