博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jdk源码阅读笔记之java集合框架(四)(LinkedList)
阅读量:6801 次
发布时间:2019-06-26

本文共 1210 字,大约阅读时间需要 4 分钟。

关于LinkedList的分析,会从且仅从其添加(add)方法入手。

因为上一篇已经分析过ArrayList,相似的地方就不再叙述,关注点在LinkedList的特点。

属性:

/**     *链表头     */    transient Node
first; /** * 链表尾 */ transient Node
last;
View Code

从以上两个属性可以得出LinkedList是基于双向链表实现的。

节点代码(无需过多解释):

private static class Node
{ E item; Node
next; Node
prev; Node(Node
prev, E element, Node
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
l = last; final Node
newNode = new Node<>(l, e, null); last = newNode; if (l == null) first = newNode; else l.next = newNode; size++; modCount++;//此系列博客中有详细解释 }

转载于:https://www.cnblogs.com/jw93/p/6846684.html

你可能感兴趣的文章
mysql学习笔记(二)
查看>>
Minor【 PHP框架】1.简介
查看>>
面试1
查看>>
【Java基础】4、java中的内部类
查看>>
Mac ssh
查看>>
h5 喜帖
查看>>
全局修改默认字体,通过反射也能做到
查看>>
直方图
查看>>
LeetCode: 【L4】N-Queens 解题报告
查看>>
首届HTML5原创游戏大赛将于6月10日拉开序幕
查看>>
8个对于Web设计和开发人员非常有用的在线工具
查看>>
iOS - (简单平移动画/弹出View的使用)
查看>>
Bloom Filter概念和原理
查看>>
SPOJ PGCD 4491. Primes in GCD Table && BZOJ 2820 YY的GCD (莫比乌斯反演)
查看>>
STL学习系列八:Set和multiset容器
查看>>
入门案例
查看>>
C++ 虚函数表解析(转)
查看>>
八数码问题及A*算法
查看>>
iOS:解决动画加阴影卡的问题
查看>>
PHP数组读取的循环操作
查看>>