我是靠谱客的博主 留胡子可乐,这篇文章主要介绍java集合之List的几种实现方式对比,现在分享给大家,希望可以做个参考。

本文对比分析了java集合框架中的几种list实现方式

 

底层数据结构

实现方式

线程安全性

优点

缺点

备注

ArrayList

数组

增加或减少元素时,需要考虑扩容;直接修改源数据。

非线程安全

按索引查找元素快

新增或减少元素需要考虑数组容量问题,数组的扩容与缩容有一定的性能损耗

java.util

LinkedList

链表

双端链表;增加元素时添加到尾节点;删除元素时,删除首节点。

非线程安全

新增、删除元素效率高

查找元素稍慢

java.util

CopyOnWriteArrayList

数组

增加或减少元素时,都会创建一个新的数组,并且加锁

线程安全

按索引查找元素快;不需要考虑数组的扩容与缩容

增加或减少元素的操作都会创建一个新数组,并发环境下内存消耗需要考虑;

java.util.concurrent

SynchronizedList

list

包装list,对每一个list的方法,都用synchronized修饰(静态代理的形式)

线程安全

优点与其底层的list一样

缺点与其底层的list一样;同时,因为每一个方法都加锁,所以性能稍差

Collections内部类

最后

以上就是留胡子可乐最近收集整理的关于java集合之List的几种实现方式对比的全部内容,更多相关java集合之List内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(151)

评论列表共有 0 条评论

立即
投稿
返回
顶部