`
cheer_nice
  • 浏览: 99488 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JDK源码学习- LinkedList

    博客分类:
  • j2se
JDK 
阅读更多
public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable

 

 private transient Entry<E> header = new Entry<E>(null, null, null);  //队列的头部

 public LinkedList() {   //默认构造函数  空的队列 只有一个头!
        header.next = header.previous = header;
}

 

LinkedList 使用 private static class Entry<E> {
 E element;
 Entry<E> next;
 Entry<E> previous; 存储元素,双向循环链表

 

private Entry<E> entry(int index) {  这个函数将给定的位置值 找到具体对应的Entry  为了提高效率 size>>1 返回 整 个队列的中间位置 然后根据index的相对位置来决定从前还是从后找
        if (index < 0 || index >= size)
            throw new IndexOutOfBoundsException("Index: "+index+
                                                ", Size: "+size);
        Entry<E> e = header;
        if (index < (size >> 1)) {
            for (int i = 0; i <= index; i++)
                e = e.next;
        } else {
            for (int i = size; i > index; i--)
                e = e.previous;
        }
        return e;
}

 

 

此外 ,LinkedList里面还有两个private class 来充当 Iterator 迭代器 

private class DescendingIterator implements Iterator  反向的!

private class ListItr implements ListIterator<E>
 
分享到:
评论

相关推荐

    javajdk源码学习-JavaSourceLearn:JDK源码学习

    jdk源码学习 JavaSourceLearn 版本号 版本 corretto-1.8.0_275 方式 逐步阅读源码添加注释、notes文件夹添加笔记 计划学习任务计划 标题为包名,后面序号为优先级1-4,优先级递减 java.lang Object 1 String 1 ...

    javajdk1.8源码-Java-source-reading:jdk1.8源代码分析

    缓慢更新一些个人学习java相关源码过程中的笔记,在这里你将不可避免地看到以下情况: 个别不懂/没想好的地方留空待补全 限于个人水平出现的解读错误 编辑错误 排版不统一 如发现有错,欢迎指正! 如果对你有用,...

    Java基于JDK 1.8的LinkedList源码详析

    主要给大家介绍了关于Java基于JDK 1.8的LinkedList源码的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    JDK-:JDK原始码学习笔记

    JDK源码学习 JDK版本基于1.7 集合框架的学习 ArrayList原始码学习 HashMap原始码学习 LinkedList原始码学习 HashSet原始码学习 LinkedHashMap原始学习 LinkedHashSet原始码学习

    javaforkjoin源码-xxy-JavaStudy:xx-JavaStudy

    JDK源码学习: Java 容器 ArrayList LinkedList PriorityQueue HashMap LinkedHashMap ConcurrentHashMap J.U.C包 AQS CountDownLatch CyclicBarrier Semaphore ForkJoin FutureTask BlockingQueue Spring AOP IOC ...

    清华妹子的Java仓库(进阶学习路线)

    本仓库记录了我的Java学习进阶之路,涵盖了Java基础、JDK源码、JVM中的重要知识,附有代码和博客讲解,旨在提供一个Java在线共享学习平台,帮助更多的Java学习入门者进阶。 Java学习 本仓库记录了我的Java学习进阶...

    java8源码-JavaRobot:Java学习笔记,JavaLearningNote

    学习笔记(持续更新中) 所有文章均同步发布到微信公众号【JavaRobot】,关注微信公众号,及时得到文章推送,谢谢支持。 说明:如无特别说明,所有代码都基于JDK8 JavaSE(Java基础) Java Core 关键字 synchronized...

    leetcode中文官网链接-java-data-structure:用java实现数据结构,形成文档以及代码

    leetcode中文官网链接 前言 由于在面试过程中,有关数据结构的题都回答的不是很好,再加上工作和...阅读jdk源码 LinkedList ArrayList 刷题:剑指offer或者leetCode 剑指offer,刷题可以使用 leetCode,刷题可以使用

    java8源码-source_code:源代码

    学习过程中一些源码的手动实现 一、基础 1. ArrayList手动实现(class:ArrayListByMe) 2. LinkedList手动实现(class:LinkedListByMe) 3. HashMap JDK1.7:(class:HashMapByMe7) 4. 枚举+lambda表达式(package:...

    JavaStudy:Java原始语言学习:JDK,Spring,Mybatis等

    源码刻意学习小组[目录]一,学习周期(2个月)时间内容主要类第一周(2019/12 / 09-2019 / 12.15)简单集合ArrayList,HashMap,LinkedList第二周(2019/12 / 16-2019 / 12.22)原子类不安全,AtomicInteger,...

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集.zip

    Spring源码分析之IoC.docx 关于线程和线程池的学习与使用.docx 深入理解JVM垃圾回收机制.docx 深入理解多线程实现的另一种方式Callable.docx 红黑树简介.docx 线程死锁及解决办法.docx 线程锁之重入锁.docx 线程间的...

    疯狂JAVA讲义

    学生提问:老师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 21 1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种...

Global site tag (gtag.js) - Google Analytics