📅  最后修改于: 2023-12-03 15:31:51.702000             🧑  作者: Mango
CopyOnWriteArrayList 是 Java 中一个基于数组实现的线程安全的 List 集合,它具有以下特点:
CopyOnWriteArrayList 提供了 toArray() 方法,用于将集合转换为包含所有元素的数组。
public Object[] toArray()
该方法会返回一个包含集合中所有元素的数组。如果集合中没有元素,则返回一个长度为 0 的数组。
在实际使用中,我们常常会使用 toArray() 方法将集合转换为数组,然后使用数组的方式进行遍历和操作。需要注意的是,使用 toArray() 转换得到的数组不是原始集合的引用,因此对于原始集合的修改不会影响到转换得到的数组。
下面是一个使用 CopyOnWriteArrayList toArray() 方法的示例代码:
import java.util.concurrent.CopyOnWriteArrayList;
public class Example {
public static void main(String[] args) {
// 创建一个线程安全的 List 集合
CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
// 添加元素到集合
list.add("Java");
list.add("Python");
list.add("C++");
// 转换集合为数组
String[] array = list.toArray(new String[0]);
// 遍历数组
for (String item : array) {
System.out.println(item);
}
}
}
上述代码会输出以下结果:
Java
Python
C++
需要注意的是,由于 CopyOnWriteArrayList 的写操作性能较低,因此在使用 toArray() 方法转换集合时,可能会存在当前线程与其他线程在同时对集合进行写操作的情况,导致 toArray() 方法得到的结果不是最新的。因此我们需要在适当的时候使用锁或其他方式来保证线程安全。