概述
本文对比分析了java集合框架中的几种list实现方式
| 底层数据结构 | 实现方式 | 线程安全性 | 优点 | 缺点 | 备注 |
ArrayList | 数组 | 增加或减少元素时,需要考虑扩容;直接修改源数据。 | 非线程安全 | 按索引查找元素快 | 新增或减少元素需要考虑数组容量问题,数组的扩容与缩容有一定的性能损耗 | java.util |
LinkedList | 链表 | 双端链表;增加元素时添加到尾节点;删除元素时,删除首节点。 | 非线程安全 | 新增、删除元素效率高 | 查找元素稍慢 | java.util |
CopyOnWriteArrayList | 数组 | 增加或减少元素时,都会创建一个新的数组,并且加锁 | 线程安全 | 按索引查找元素快;不需要考虑数组的扩容与缩容 | 增加或减少元素的操作都会创建一个新数组,并发环境下内存消耗需要考虑; | java.util.concurrent |
SynchronizedList | list | 包装list,对每一个list的方法,都用synchronized修饰(静态代理的形式) | 线程安全 | 优点与其底层的list一样 | 缺点与其底层的list一样;同时,因为每一个方法都加锁,所以性能稍差 | Collections内部类 |
最后
以上就是留胡子可乐为你收集整理的java集合之List的几种实现方式对比的全部内容,希望文章能够帮你解决java集合之List的几种实现方式对比所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复