介绍
在日常开发中,我们经常会用到集合框架,比如、、、、,但是你有没有关注过,在特殊的场景下,是否还有其他功能相同但效率和容错能力更高的框架呢? 其实我们常用的集合框架完全可以帮我们解决问题,但是作为一个好动的程序员,闲下来的时候总是想尝试去分析其他的事情。 让我们开始吧。 首先我们会列出一些我们的集合框架,然后分别进行介绍。 一张图片胜过千言万语:
出色地! 我的绘画天赋实在是太差了,所以我就尝试一下吧。 以上是我自己通过官方文档等渠道总结的。 目视检查应该比较全面。 如果有遗漏的地方,我稍后会继续补充。 我不知道我是否没有解决它。 数据结构框架和衍生版本非常多。 不知道是我的知识储备太差还是平时不太重视。 虽然有些不再推荐了,但我还是想有个全面的了解。 毕竟不会受伤。
本来想总结几个常用的数据结构框架,但是由于不知道的太多了,所以就多总结几个吧。 本文将对这些进行总体总结,然后单独章节进行单独介绍。 首先,标记它们的一般用法和解释。 总结的不太好。 如果我发现任何错误,我会及时修改。 当我写博客时,我有一个习惯。 我喜欢用图片来表达。 总觉得字数太多的话,会有点难以看清。 并不是文字描述不好,可能是我文笔不好造成的! 话不多说,这里是一个简短的总结:
对于Set、Map、List、Queue等基本数据结构,这里不再过多描述。 大多数程序员对此都有一些概念,主要关注单线程和多线程实现类的使用。 区分
单线程
同时
列表
:Java动态数组
:线性数据结构
:是线程安全的,可以用于遍历。
:支持线程同步的动态数组
队列
双端队列
:双端队列实现
堆栈:标准后进先出堆栈
:通过二进制小顶堆实现
:数组实现的线程安全有界阻塞队列
e/e:用于双端操作的非阻塞、无锁、无界、线程安全队列
:只能在指定时间获取队列元素
/:有界双向链表队列,容量可选,可以设置是否有边界
:元素可以不存储
e:支持优先级无界阻塞队列
:使用Queue接口执行
地图
:哈希表,一种存储Key-Value的数据结构
:Key 可以是Enum类型的对象
: 基于类的实现比较老
:严格判断key值是否相等
:保持插入顺序
:对插入的key进行排序
:适合做一些缓存操作
:是线程安全版本,支持高效并发
p:基于跳跃列表的并发安全、有序存储Map
放
:存储元素不可重复,底层基于
:专为Eum设计的集合类
:位或整数密集集
:维持Key插入顺序
: 有序集合
t:排序并发集
:用于遍历
上面对这些集合类做了一些总结。 几乎每个应用场景都有对应的功能。 现在想来,之前写的代码性能确实很差。 如果换成上面的话,性能会提升很多,所以后面我会努力提升自己。 该应用程序执行一些数据性能处理。 本文就写到这里了,后面会分析一些集合类,预计会提高很多的见解。 确实,刚开始写博客时,我在语言组织上遇到了困难,但我相信坚持一段时间后会有所改善。
学习之后,你解决问题的思路和方法有变化吗? 如果学习后你的想法和行为和以前一样,那么显然这样的学习是无效的。 从现在开始,努力奋斗,赢得每一天。
如果你也想在工作之外做点小副业,希望一起进步,当然也可以关注我的公众号。 我非常希望我们能够一起突破自己的瓶颈,在进步的路上不再孤单。 最后,我的公众号是“亨利扶苏”。