Java中的ConcurrentLinkedDeque toArray()方法及示例

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]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程