前前后后分析了三遍这个双端队列,但是一直没有去写一篇文章,中途有些事情给耽搁了,所以这次就来输出了,这是自己关于分析集合类的第13篇源码分析的文章,继续分析吧。
还是以以往的文章风格先看下类的继承结构,这样可以做到心中有数,比较靠谱一点。源码的设计就是满足java作为一门高级语言特性所具有的,单继承以及多实现。
一,像集合类的容器,你就把它想象成装载数据的集合就行了,我们利用这样的集合去往其中添加元素,一般都是add()方法,put()方法,offer()方法之类的,这里就看下add()方法的实现原理吧,代码里面直接给与了说明,这里就不过多介绍了。
二,上面也说过,添加元素除了使用常用的add()方法,一般也会使用offer()这样的方法,其实调用底层的方法都一样,这里就继续看下offer()的源码流程吧。
三,对于我来说,个人的感受使用集合类常用的方法除了装填数据外,集合的数据大小以及是否为空还是比较常用的,这里就看下size()方法和isEmpty()方法的实现吧。
四,既然双端队列比一般队列那么特殊一点,即可以从队首获取元素,也可以从队尾获取元素,所以这里继续看下如何从队首获取元素的方法,这里自己看了一下有好几个都是获取队首元素方法的,所以就一次性分析了,区别就是是否从队列出来了,是否进行了gc回收。
五,上面介绍的是从队首获取元素的,接下来就是从队尾进行元素获取的,这里自己也是一次性将从队尾获取元素的方法分析完,这算是和自己以后写文章的方式很像了,一个一个系列的去写,这样自己会觉得深入一点比较好一点。
六,比如说我们去判断一个元素在不在这个集合中,一般都会使用contains()方法或者自己实现一个方法进行判断。这里看下contains()方法源码分析吧,很简单,和以往的分析方式大同小异。
七,一般使用集合,我都会自己去分析一下clear()方法的使用,这样才会觉得整个集合分析完了。
到这里整个ArrayDeque双端队列的源码分析就结束了,自己就是将大部分常用的方法进行了分析,其它没有分析的方法,需要的你可以看下,这里就不过多说明了,分析一篇文章确实耗时很长,可能你看这篇文章也就几分钟,但是输出一篇文章却要花费很长时间,这就是写文章比较耗时的地方。