Java中CopyOnWriteArrayList的toArray()方法
CopyOnWriteArrayList 的 toArray() 方法用于以正确的顺序返回包含CopyOnWriteArrayList中所有元素的数组。
语法:
public Object[] toArray()
or
public <T> T[] toArray(T[] a)
参数: 该方法要么不接受参数,要么接受一个数组T[] a作为参数,该数组存储列表元素(如果数组足够大),否则为此目的分配一个相同运行时类型的新数组。
返回值: 该函数返回一个包含列表中所有元素的数组。
异常: 该方法的第一个重载不会引发异常。 但是,第二个重载会引发以下异常:
- 如果指定数组的运行时类型不是该列表中每个元素的运行时类型的超类型,则引发ArrayStoreException。
- 如果指定的数组为空,则引发NullPointerException
以下程序说明了CopyOnWriteArrayList.toArray()方法:
程序1:
// Java程序,演示CopyOnWriteArrayList的toArray()方法
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
//创建CopyOnWriteArrayList对象
CopyOnWriteArrayList<Integer> ArrLis
= new CopyOnWriteArrayList<Integer>();
//添加元素
ArrLis.add(32);
ArrLis.add(67);
ArrLis.add(98);
ArrLis.add(100);
//打印CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: "
+ ArrLis);
//使用toArray()方法获取CopyOnWriteArrayList的元素数组
Object[] arr = ArrLis.toArray();
System.out.println("CopyOnWriteArrayList的元素作为数组:"
+ Arrays.toString(arr));
}
}
CopyOnWriteArrayList: [32, 67, 98, 100]
CopyOnWriteArrayList的元素作为数组: [32, 67, 98, 100]
程序2:
// Java程序,演示CopyOnWriteArrayList的toArray(T[])方法
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
//创建CopyOnWriteArrayList对象
CopyOnWriteArrayList<Integer> ArrLis
= new CopyOnWriteArrayList<Integer>();
//添加元素
ArrLis.add(32);
ArrLis.add(67);
ArrLis.add(98);
ArrLis.add(100);
//打印CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: "
+ ArrLis);
//使用toArray(T[])方法获取CopyOnWriteArrayList的元素数组
Integer arr[] = new Integer[ArrLis.size()];
arr = ArrLis.toArray(arr);
System.out.println("CopyOnWriteArrayList的元素作为数组:"
+ Arrays.toString(arr));
}
}
CopyOnWriteArrayList: [32, 67, 98, 100]
CopyOnWriteArrayList的元素作为数组: [32, 67, 98, 100]
参考资料:CopyOnWriteArrayList.toArray()文档,CopyOnWriteArrayList.toArray(T[])文档
极客教程