Java的CopyOnWriteArraySet toArray()方法示例
- ### toArray()
Java.util.concurrent.CopyOnWriteArraySet.toArray() 方法返回包含集合中所有元素的数组,顺序正确,即从第一个到最后一个元素。返回的数组是安全的,因为创建了一个新的数组(因此分配了新的内存)。因此,调用者可以自由修改数组。它作为基于数组和基于集合的 API 之间的桥梁。
语法
public Object[] toArray()
参数:不接受任何参数。
返回值:它返回一个包含集合中所有元素的数组。
下面的示例说明了 CopyOnWriteArraySet.toArray() 方法:
示例 1:
// Java Program Demonstrate toArray()
// method of CopyOnWriteArraySet
import java.util.concurrent.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
throws IllegalStateException
{
// create object of CopyOnWriteArraySet
CopyOnWriteArraySet<Integer> set
= new CopyOnWriteArraySet<Integer>();
// Add numbers to end of CopyOnWriteArraySet
set.add(7855642);
set.add(35658786);
set.add(5278367);
set.add(74381793);
System.out.println("CopyOnWriteArraySet: "
+ set);
Object[] a = set.toArray();
System.out.println("Returned Array: "
+ Arrays.toString(a));
}
}
输出:
CopyOnWriteArraySet: [7855642, 35658786, 5278367, 74381793]
Returned Array: [7855642, 35658786, 5278367, 74381793]
- ### toArray(T[])
Java中的CopyOnWriteArraySet类的toArray(arr[])方法用于形成与CopyOnWriteArraySet中相同元素的数组。它以正确的顺序返回包含此CopyOnWriteArraySet中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型。如果CopyOnWriteArraySet适合指定的数组,则返回其中。否则,将分配具有指定数组的运行时类型和此CopyOnWriteArraySet大小的新数组。
如果CopyOnWriteArraySet适合具有剩余空间的指定数组(即,数组具有比CopyOnWriteArraySet更多的元素),则与CopyOnWriteArraySet结束后紧接在其后的元素将设置为null。(仅在调用者知道CopyOnWriteArraySet不包含任何null元素时,此项对于确定CopyOnWriteArraySet的长度很有用。)
语法:
public <T> T[] toArray(T[] a)
参数: 该方法接受一个参数 arr[],该参数是 CopyOnWriteArraySet 元素将要存储的数组,如果它足够大,则在此目的地中返回;否则,为此目的地分配具有相同的运行时类型的新数组。
返回值: 该方法返回一个包含与 CopyOnWriteArraySet 类似元素的数组。
异常: 该方法可能会抛出两种类型的异常:
- ArrayStoreException :当所提到的数组是不同类型且无法与CopyOnWriteArraySet中提到的元素进行比较时。
- NullPointerException :如果数组为空,则会抛出此异常。
下面的程序说明了CopyOnWriteArraySet.toArray(arr[])方法的工作原理。
程序 1: 当数组大小为CopyOnWriteArraySet时
// Java代码,用于说明toArray(arr[])
import java.util.concurrent.*;
import java.util.*;
public class CopyOnWriteArraySetDemo {
public static void main(String args[])
{
// 创建一个空的CopyOnWriteArraySet
CopyOnWriteArraySet set
= new CopyOnWriteArraySet();
// 使用add()方法向CopyOnWriteArraySet添加元素
set.add("Welcome");
set.add("To");
set.add("Geeks");
set.add("For");
set.add("Geeks");
// 显示CopyOnWriteArraySet
System.out.println("The CopyOnWriteArraySet: "
+ set);
// 创建数组并使用toArray()
String[] arr = new String[5];
arr = set.toArray(arr);
// 显示arr
System.out.println("返回的数组: "
+ Arrays.toString(arr));
}
}
输出:
The CopyOnWriteArraySet: [Welcome, To, Geeks, For]
Returned Array: [Welcome, To, Geeks, For, null]