Java ConcurrentLinkedDeque toArray()方法及示例

Java ConcurrentLinkedDeque toArray()方法及示例

  • ### toArray()

Java.util.concurrent.ConcurrentLinkedDeque.toArray()方法返回一个包含deque中所有元素的数组,并以适当的顺序,即从头到尾。返回的数组将是安全的,因为一个新的数组被创建(因此新的内存被分配)。因此,调用者可以自由地修改数组。它是基于数组和基于集合的API之间的桥梁。

语法

public Object[] toArray()

参数。它不接受任何参数。

返回值。它返回一个包含deque中所有元素的数组。

下面的例子说明了ConcurrentLinkedDeque.toArray()方法。

代码 1:

// Java Program Demonstrate toArray()
// method of ConcurrentLinkedDeque
  
import java.util.concurrent.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {
  
        // create object of ConcurrentLinkedDeque
        ConcurrentLinkedDeque<Integer> deque
            = new ConcurrentLinkedDeque<Integer>();
  
        // Add numbers to end of 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));
    }
}

输出:

ConcurrentLinkedDeque: [7855642, 35658786, 5278367, 74381793]
Returned Array: [7855642, 35658786, 5278367, 74381793]
  • ### toArray(T[])

Java中ConcurrentLinkedDeque类的toArray(arr[])方法用于形成一个与ConcurrentLinkedDeque相同元素的数组。它返回一个包含该ConcurrentLinkedDeque中所有元素的数组,其顺序是正确的;返回数组的运行时类型是指定数组的类型。如果ConcurrentLinkedDeque适合指定的数组,它将被返回其中。否则,将分配一个新的数组,其运行时类型为指定数组,大小为该ConcurrentLinkedDeque。

如果ConcurrentLinkedDeque在指定的数组中还有剩余空间(即数组中的元素多于ConcurrentLinkedDeque),那么紧随ConcurrentLinkedDeque结束的数组中的元素将被删除为空。(只有当调用者知道ConcurrentLinkedDeque不包含任何空元素时,这对确定ConcurrentLinkedDeque的长度才有用)。

语法:

public <T> T[] toArray(T[] a)

参数:该方法接受一个参数arr[],如果该数组足够大,则将ConcurrentLinkedDeque的元素存储到该数组中;否则,将为此目的分配一个相同运行时类型的新数组。

返回值:该方法返回一个包含类似于ConcurrentLinkedDeque的元素的数组。

异常:该方法可能抛出两种类型的异常。

  • ArrayStoreException : 当提到的数组是不同的类型并且不能与ConcurrentLinkedDeque中提到的元素进行比较。
  • NullPointerException : 如果数组是空的,就会抛出这个异常。

下面的程序说明了ConcurrentLinkedDeque.toArray(arr[])方法的工作。

代码 1: 当数组的大小为ConcurrentLinkedDeque时

// Java code to illustrate toArray(arr[])
  
import java.util.concurrent.*;
import java.util.*;
  
public class ConcurrentLinkedDequeDemo {
    public static void main(String args[])
    {
        // Creating an empty ConcurrentLinkedDeque
        ConcurrentLinkedDeque<String> deque
            = new ConcurrentLinkedDeque<String>();
  
        // Use add() method to add
        // elements into the ConcurrentLinkedDeque
        deque.add("Welcome");
        deque.add("To");
        deque.add("Geeks");
        deque.add("For");
        deque.add("Geeks");
  
        // Displaying the ConcurrentLinkedDeque
        System.out.println("The ConcurrentLinkedDeque: "
                           + deque);
  
        // Creating the array and using toArray()
        String[] arr = new String[5];
        arr = deque.toArray(arr);
  
        // Displaying arr
        System.out.println("Returned Array: "
                           + Arrays.toString(arr));
    }
}

输出:

The ConcurrentLinkedDeque: [Welcome, To, Geeks, For, Geeks]
Returned Array: [Welcome, To, Geeks, For, Geeks]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程