JDK源码阅读——集合类ArrayListLinkedList

Posted dloooooo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK源码阅读——集合类ArrayListLinkedList相关的知识,希望对你有一定的参考价值。

ArrayList

  其实刚开始没有准备很认真读,但。。读都读了 ,还是好好把注解也读了吧。结果发现了一个不错的点。虽然ArrayList是非线程安全的,但当有两个及以上的线程同时对ArrayList进行结构上的操作(增删元素、修改某个元素的值不算)时,它对外表现得是被加了锁。(老意译了)读注释太累了 不读了,还是直接看方法吧。

  是我无知了,没想到ArrayList查询对象索引的时候,连null都可以查。 

       技术图片

  打扰了,原来remove()也可以。同时,fastRemove()比remove()快在,省掉了列表的边界检查部分。有关迭代器的我默认跳过了。对不起,我太懒了。。。。

 

  ArrayList理解起来应该不存在任何难度,毕竟底层是数组。

 

LinkedList

  有关线程安全的问题,LinkedList与ArrayList是同一个解释。但LInkedList不仅实现了List还实现了双端队列Deque。

  为啥LinkFirst()是private,外部调用addFirst(),然后addFirst再调用LinkFirst()???这也算工厂方法模式吗???

 

好吧。。这俩,其实没啥可看的。至少没有什么难懂的东西。

ArrayList基于数组,LinkedList基于链表。但总的来看,LinkedList的方法提供的功能明显丰富许多。实现了List、双端队列甚至栈。

而ArrayList。。。大概是个纯粹的自增长数组。

边看边写的,流水账模式。

 

以上!

  

  

以上是关于JDK源码阅读——集合类ArrayListLinkedList的主要内容,如果未能解决你的问题,请参考以下文章

java1.7集合源码阅读: Stack

JDK源码及其他框架源码解析随笔地址导航

jdk源码阅读笔记之java集合框架(基础篇)

JDK1.8JDK1.8集合源码阅读——TreeMap

JDK1.8JDK1.8集合源码阅读——Set汇总

JDK1.8JDK1.8集合源码阅读——LinkedList