首页 > 编程语言 > 详细

java 集合之ArrayList

时间:2019-04-24 18:28:11      阅读:109      评论:0      收藏:0      [点我收藏+]

ArrayList

线程不安全。

底层Object[]数组实现,用transient关键字修饰,防止序列化,然后重写了readObject和writeObject方法,为了提高传输效率。

插入时会判断数组容量是否足够,不够的话进行扩容。

通过将旧数组复制到新建数组进行扩容。

移除元素的时候,会将index+1之后的所有元素前移。

Vector

线程安全。

LinkedList 

LinkedList是基于链表结构实现的。双向链表。

查询慢,新增删除快。

CopyOnWriteArrayList

底层是用volatile transient声明的数组。保证修改之后读立即可见。

内部持有ReentrantLock锁。增删改都会加锁。锁只有一把。保证增删改只有一个线程在进行。

读操作不需要获得锁,支持并发读。

增删改中会复制一个新数组,操作完成之后再赋给原来的引用。保证增删改的过程中不影响并发读。

 

java 集合之ArrayList

原文:https://www.cnblogs.com/natian-ws/p/10763925.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!