前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java进阶|ArrayDeque双端队列源码分析

java进阶|ArrayDeque双端队列源码分析

作者头像
码农王同学
发布2020-06-17 11:25:23
4950
发布2020-06-17 11:25:23
举报
文章被收录于专栏:后端Coder后端Coder

前前后后分析了三遍这个双端队列,但是一直没有去写一篇文章,中途有些事情给耽搁了,所以这次就来输出了,这是自己关于分析集合类的第13篇源码分析的文章,继续分析吧。

还是以以往的文章风格先看下类的继承结构,这样可以做到心中有数,比较靠谱一点。源码的设计就是满足java作为一门高级语言特性所具有的,单继承以及多实现。

一,像集合类的容器,你就把它想象成装载数据的集合就行了,我们利用这样的集合去往其中添加元素,一般都是add()方法,put()方法,offer()方法之类的,这里就看下add()方法的实现原理吧,代码里面直接给与了说明,这里就不过多介绍了。

二,上面也说过,添加元素除了使用常用的add()方法,一般也会使用offer()这样的方法,其实调用底层的方法都一样,这里就继续看下offer()的源码流程吧。

三,对于我来说,个人的感受使用集合类常用的方法除了装填数据外,集合的数据大小以及是否为空还是比较常用的,这里就看下size()方法和isEmpty()方法的实现吧。

四,既然双端队列比一般队列那么特殊一点,即可以从队首获取元素,也可以从队尾获取元素,所以这里继续看下如何从队首获取元素的方法,这里自己看了一下有好几个都是获取队首元素方法的,所以就一次性分析了,区别就是是否从队列出来了,是否进行了gc回收。

五,上面介绍的是从队首获取元素的,接下来就是从队尾进行元素获取的,这里自己也是一次性将从队尾获取元素的方法分析完,这算是和自己以后写文章的方式很像了,一个一个系列的去写,这样自己会觉得深入一点比较好一点。

六,比如说我们去判断一个元素在不在这个集合中,一般都会使用contains()方法或者自己实现一个方法进行判断。这里看下contains()方法源码分析吧,很简单,和以往的分析方式大同小异。

七,一般使用集合,我都会自己去分析一下clear()方法的使用,这样才会觉得整个集合分析完了。

到这里整个ArrayDeque双端队列的源码分析就结束了,自己就是将大部分常用的方法进行了分析,其它没有分析的方法,需要的你可以看下,这里就不过多说明了,分析一篇文章确实耗时很长,可能你看这篇文章也就几分钟,但是输出一篇文章却要花费很长时间,这就是写文章比较耗时的地方。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农王同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档