首页 > 代码库 > jdk源码阅读笔记之java集合框架(四)(LinkedList)
jdk源码阅读笔记之java集合框架(四)(LinkedList)
关于LinkedList的分析,会从且仅从其添加(add)方法入手。
因为上一篇已经分析过ArrayList,相似的地方就不再叙述,关注点在LinkedList的特点。
属性:
/** *链表头 */ transient Node<E> first; /** * 链表尾 */ transient Node<E> last;
从以上两个属性可以得出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; } }
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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。