概述
对于CopyOnWriteArrayList需要掌握以下几点
- 创建:CopyOnWriteArrayList()
- 添加元素:即add(E)方法
- 获取单个对象:即get(int)方法
- 删除对象:即remove(E)方法
- 遍历所有对象:即iterator(),在实际中更常用的是增强型的for循环去做遍历
注:CopyOnWriteArrayList是一个线程安全,读操作时无锁的ArrayList。
CopyOnWriteArrayList的创建
public CopyOnWriteArrayList()
使用方法:
List<String> list = new CopyOnWriteArrayList<String>();
1. CopyOnWriteArrayList(写数组的拷贝)是ArrayList的一个线程安全的变体,CopyOnWriteArrayList和CopyOnWriteSet都是线程安全的集合,其中所有可变操作(add、set等等)都是通过对底层数组进行一次新的复制来实现的。
2. 它绝对不会抛出ConcurrentModificationException的异常。因为该列表(CopyOnWriteArrayList)在遍历时将不会被做任何的修改。
3. CopyOnWriteArrayList适合用在“读多,写少”的“并发”应用中,换句话说,它适合使用在读操作远远大于写操作的场景里,比如缓存。它不存在“扩容”的概念,每次写操作(add or remove)都要copy一个副本,在副本的基础上修改后改变array引用,所以称为“CopyOnWrite”,因此在写操作是加锁,并且对整个list的copy操作时相当耗时的,过多的写操作不推荐使用该存储结构。
4. CopyOnWriteArrayList的功能是是创建一个列表,有三种构造方法:
(1)CopyOnWriteArrayList ()创建一个空列表。
(2)CopyOnWriteArrayList (Collection<? extendsE> c)
创建一个按 collection的迭代器返回元素的顺序包含指定 collection元素的列表。
(3)CopyOnWriteArrayList(E[] toCopyIn)
创建一个保存给定数组的副本的列表
---------------------
作者:JewWang
来源:CSDN
原文:https://blog.csdn.net/wjwj1203/article/details/8109000
版权声明:本文为博主原创文章,转载请附上博文链接!
最后
以上就是过时白昼为你收集整理的CopyOnWriteArrayList 详解的全部内容,希望文章能够帮你解决CopyOnWriteArrayList 详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复