我是靠谱客的博主 留胡子可乐,最近开发中收集的这篇文章主要介绍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的几种实现方式对比所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部