1 概述
JUC并发包中只提供了一个并发list就是CopyOnWriteList,是线程安全的(内部有一个独占锁ReetrantLock),采用的是写时复制的策略。整体的类图结构如下图所示。
下面从构造方法,增删改查与迭代器遍历来对该类进行一些详细的介绍。
2 构造方法
该类共有三个构造方法,一个无参构造,一个传入一个集合的有参构造,一个是传入一个泛型数组的有参构造
public CopyOnWriteArrayList() //无参构造器在内部创建了一个大小为0的Object数组
public CopyOnWriteArrayList(Collection<? extends E> c) //传入一个集合,将集合里的元素赋值到本list
public CopyOnWriteArrayList(E[] toCopyIn) //创建一个list其内部元素时传入toCopyIn的副本
3 添加元素
public boolean add(E e) {
//获取内部的独占锁
final ReentrantLock lock = this.lock;
lock.lock();
try {