📌  相关文章
📜  Java中的 CopyOnWriteArrayList add() 方法(1)

📅  最后修改于: 2023-12-03 15:16:22.213000             🧑  作者: Mango

Java中的 CopyOnWriteArrayList add() 方法

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]
    }
}