📅  最后修改于: 2023-12-03 15:16:22.213000             🧑  作者: Mango
CopyOnWriteArrayList
是一个线程安全的列表,它通过在写操作时通过复制整个列表来实现线程安全,读操作则无需加锁,因此在读操作远远多于写操作时,使用 CopyOnWriteArrayList
可能会提供更好的性能表现。
CopyOnWriteArrayList add(E e)
方法用于将元素添加到列表的末尾。
public boolean add(E e) {
final ReentrantLock lock = this.lock;
lock.lock();
try {
Object[] elements = getArray(); // 获取当前列表中的元素
int len = elements.length;
Object[] newElements = Arrays.copyOf(elements, len + 1); // 复制一个新的元素数组
newElements[len] = e; // 将新元素添加到最后
setArray(newElements); // 将新的元素数组赋值给 CopyOnWriteArrayList 对象
return true;
} finally {
lock.unlock();
}
}
E e
:要添加到列表中的元素。true
:如果元素添加成功。false
:如果元素添加失败。该方法不会抛出任何异常。
import java.util.concurrent.CopyOnWriteArrayList;
public class Example {
public static void main(String[] args) {
CopyOnWriteArrayList<Integer> list = new CopyOnWriteArrayList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list); // 输出:[1, 2, 3]
}
}