Java ConcurrentLinkedQueue toArray()方法
- toArray(): ConcurrentLinkedQueue的toArray()方法用于返回一个与ConcurrentLinkedQueue相同元素的数组,并以适当的顺序返回。基本上,它把ConcurrentLinkedQueue的所有元素复制到一个新的数组中。这个方法是数组和ConcurrentLinkedQueue之间的一个桥梁。
语法:
public Object[] toArray()
返回:该方法返回个数组,包含类似于ConcurrentLinkedQueue的元素。
下面的程序说明了java.util.concurrent.ConcurrentLinkedQueue.toArray()方法。
代码 1:
// Java Program Demonstrate toArray()
// method of ConcurrentLinkedQueue
import java.util.concurrent.ConcurrentLinkedQueue;
public class GFG {
public static void main(String[] args)
{
// create object of ConcurrentLinkedQueue
ConcurrentLinkedQueue<Integer> queue
= new ConcurrentLinkedQueue<Integer>();
// Add element to ConcurrentLinkedQueue
queue.add(2300);
queue.add(1322);
queue.add(8945);
queue.add(6512);
// print queue details
System.out.println("Queue Contains " + queue);
// apply toArray() method on queue
Object[] array = queue.toArray();
// Print elements of array
System.out.println("The array contains:");
for (Object i : array) {
System.out.print(i + "\t");
}
}
}
输出:
Queue Contains [2300, 1322, 8945, 6512]
The array contains:
2300 1322 8945 6512
代码 2:
// Java Program Demonstrate toArray()
// method of ConcurrentLinkedQueue
import java.util.concurrent.ConcurrentLinkedQueue;
public class GFG {
public static void main(String args[])
{
// Creating a ConcurrentLinkedQueue
ConcurrentLinkedQueue<String>
queue = new ConcurrentLinkedQueue<String>();
// elements into the Queue
queue.add("Welcome");
queue.add("To");
queue.add("Jungle");
// Displaying the ConcurrentLinkedQueue
System.out.println("The ConcurrentLinkedQueue: "
+ queue);
// Creating the array and using toArray()
Object[] arr = queue.toArray();
System.out.println("The array is:");
for (int j = 0; j < arr.length; j++)
System.out.println(arr[j]);
}
}
输出:
The ConcurrentLinkedQueue: [Welcome, To, Jungle]
The array is:
Welcome
To
Jungle
toArray(T[] a)
: ConcurrentLinkedQueue的toArray(T[] a)
方法用于一个包含与该ConcurrentLinkedQueue相同元素的数组,并按适当顺序排列。这个方法与toArray()的区别只有一个条件。如果ConcurrentLinkedQueue的大小小于或等于传递的数组,返回的数组类型与参数中传递的数组相同。否则,将分配一个新的数组,其类型与指定的数组相同,数组的大小等于该队列的大小。这个方法在数组和集合之间起到了桥梁作用。
语法:
public <T> T[] toArray(T[] a)
参数:该方法以array为参数,如果它足够大的话,队列的所有元素将被复制到其中。否则,一个新的相同运行时类型的数组将被分配到此。
返回:该方法返回数组,其中包含类似于ConcurrentLinkedQueue的元素。
异常:该方法抛出以下异常。
- ArrayStoreException 。当传递的数组的类型与ConcurrentLinkedQueue的元素类型不同。
- NullPointerException 。如果传递的数组是空的。
下面的程序说明了java.util.concurrent.ConcurrentLinkedQueue.toArray(T[] a)
方法。
代码 1:
// Java Program Demonstrate toArray()
// method of ConcurrentLinkedQueue
import java.util.concurrent.ConcurrentLinkedQueue;
public class GFG {
public static void main(String[] args)
{
// create object of ConcurrentLinkedQueue
ConcurrentLinkedQueue<String> queue
= new ConcurrentLinkedQueue<String>();
// elements into the Queue
queue.add("Welcome");
queue.add("To");
queue.add("Jungle");
// print queue details
System.out.println("Queue Contains " + queue);
// the array to pass in toArray()
// array has size equal to size of ConcurrentLinkedQueue
String[] passArray = new String[queue.size()];
// Calling toArray(T[] a) method
Object[] array = queue.toArray(passArray);
// Print elements of passed array
System.out.println("\nThe array passed :");
for (String i : passArray) {
System.out.print(i + " ");
}
System.out.println();
// Print elements of returned array
System.out.println("\nThe array returned :");
for (Object i : array) {
System.out.print(i + " ");
}
}
}
输出:
Queue Contains [Welcome, To, Jungle]
The array passed :
Welcome To Jungle
The array returned :
Welcome To Jungle
代码 2: 演示 ArrayStoreException
// Java Program Demonstrate toArray()
// method of ConcurrentLinkedQueue
import java.util.concurrent.ConcurrentLinkedQueue;
public class GFG {
public static void main(String[] args)
{
// create object of ConcurrentLinkedQueue
ConcurrentLinkedQueue<Integer> queue
= new ConcurrentLinkedQueue<Integer>();
// Add element to ConcurrentLinkedQueue
queue.add(2323);
queue.add(2472);
queue.add(4235);
queue.add(1242);
// the array to pass in toArray()
// array has size equal to size of ConcurrentLinkedQueue
String[] passArray = new String[queue.size()];
// Calling toArray(T[] a) method
try {
Object[] array = queue.toArray(passArray);
}
catch (ArrayStoreException e) {
System.out.println("Exception: " + e);
}
}
}
输出:
Exception: java.lang.ArrayStoreException: java.lang.Integer
代码 2: 要显示NullPointerException
// Java Program Demonstrate toArray()
// method of ConcurrentLinkedQueue
import java.util.concurrent.ConcurrentLinkedQueue;
public class GFG {
public static void main(String[] args)
{
// create object of ConcurrentLinkedQueue
ConcurrentLinkedQueue<Integer> queue
= new ConcurrentLinkedQueue<Integer>();
// Add element to ConcurrentLinkedQueue
queue.add(2323);
queue.add(2472);
queue.add(4235);
queue.add(1242);
// the array to pass
String[] passArray = null;
// Calling toArray(T[] a) method
try {
Object[] array = queue.toArray(passArray);
}
catch (NullPointerException e) {
System.out.println("Exception: " + e);
}
}
}
输出:
Exception: java.lang.NullPointerException