Java中的ConcurrentLinkedDeque toArray()方法及示例
- ### toArray()
Java.util.concurrent.ConcurrentLinkedDeque.toArray()方法返回一个数组,该数组以正确的顺序包含双端队列中的所有元素,即从第一个到最后一个。返回的数组将是安全的,因为创建了新的数组(因此分配了新的内存)。因此,调用者可以自由地修改数组。它作为基于数组和基于集合的API之间的桥梁。
语法:
public Object[] toArray()
参数:它不接受任何参数。
返回值:返回一个包含双端队列中所有元素的数组。
以下示例说明了ConcurrentLinkedDeque.toArray()方法:
示例1:
“`java //Java程序演示ConcurrentLinkedDeque toArray()方法
import java.util.concurrent.*;
import java.util.*;
<pre><code>public class GFG {
public static void main(String[] args)
throws IllegalStateException {
// 创建ConcurrentLinkedDeque对象
ConcurrentLinkedDeque<Integer> deque
= new ConcurrentLinkedDeque<Integer>();
//向ConcurrentLinkedDeque末尾添加数字
deque.add(7855642);
deque.add(35658786);
deque.add(5278367);
deque.add(74381793);
System.out.println("ConcurrentLinkedDeque: "
+ deque);
Object[] a = deque.toArray();
System.out.println("Returned Array: "
+ Arrays.toString(a));
}
}
</code></pre>
<pre><code class=" line-numbers"><br />输出:
“`java ConcurrentLinkedDeque: [7855642, 35658786, 5278367, 74381793]
Returned Array: [7855642, 35658786, 5278367, 74381793]
- ### toArray(T[])
Java中ConcurrentLinkedDeque类的toArray(arr[])方法用于形成与ConcurrentLinkedDeque相同元素的数组。它返回一个包含此ConcurrentLinkedDeque中所有元素的数组,且具有正确的顺序;返回数组的运行时类型为指定数组的类型。如果ConcurrentLinkedDeque适合指定数组,则返回其中;否则,将为此目的分配一个具有指定数组的运行时类型和大小的新数组。如果指定的数组比ConcurrentLinkedDeque要大(即,数组有更多元素),则位于ConcurrentLinkedDeque结束之后的数组中的元素转换为null。 (如果调用者知道ConcurrentLinkedDeque不包含任何null元素,则仅在确定ConcurrentLinkedDeque的长度时此方法会非常有用。)
语法:
public <T> T[] toArray(T[] a)
参数: 该方法接受一个参数arr [],如果足够大,则将ConcurrentLinkedDeque的元素存储在其中;否则,将为此目的分配具有相同运行时类型的新数组。
返回值: 该方法返回一个包含与ConcurrentLinkedDeque类似的元素的数组。
异常: 该方法可能会抛出两种类型的异常:
- ArrayStoreException:当所述数组是不同类型的,不能与ConcurrentLinkedDeque中提到的元素进行比较时。
- NullPointerException:如果数组为Null,则抛出此异常。
以下程序演示了ConcurrentLinkedDeque.toArray(arr [])方法的工作方式。
程序1:当数组大小为ConcurrentLinkedDeque大小时
“`java // Java代码用于说明toArray(arr[])
import java.util.concurrent.*;
import java.util.*;
public class ConcurrentLinkedDequeDemo {
public static void main(String args[])
{
// 创建一个空的ConcurrentLinkedDeque
ConcurrentLinkedDeque<String> deque
= new ConcurrentLinkedDeque<String>();
// 使用add()方法向ConcurrentLinkedDeque中添加元素
deque.add("欢迎");
deque.add("来到");
deque.add("Geeks");
deque.add("For");
deque.add("Geeks");
// 显示ConcurrentLinkedDeque
System.out.println("ConcurrentLinkedDeque: "
+ deque);
// 创建数组并使用toArray()
String[] arr = new String[5];
arr = deque.toArray(arr);
// 显示arr
System.out.println("返回的数组: "
+ Arrays.toString(arr));
}
}
<pre><code class=" line-numbers"><br />输出:
“`java
ConcurrentLinkedDeque: [欢迎, 来到, Geeks, For, Geeks]
返回的数组: [欢迎, 来到, Geeks, For, Geeks]
极客教程