toArray()
The toArray method of PriorityBlockingQueue is used to create an array having the same elements as that of this PriorityBlockingQueue, in proper sequence. Actually, this method copies all the element from the PriorityBlockingQueue to a new array. This method behaves as a bridge between array and PriorityBlockingQueue.
Syntax:
public Object[] toArray()
Return Value: This method returns an array which contains the elements of PriorityBlockingQueue.
Below programs illustrate toArray() method of PriorityBlockingQueue class:
Example 1: Program to demonstrate toArray() method on PriorityBlockingQueue to create an array of numbers from a PriorityBlockingQueue which contains numbers.
Java
// Java Program Demonstrate toArray() // method of PriorityBlockingQueue import java.util.concurrent.PriorityBlockingQueue; public class GFG { public static void main(String[] args) { // define capacity of PriorityBlockingQueue int capacityOfQueue = 5 ; // create object of PriorityBlockingQueue PriorityBlockingQueue<Integer> PrioQueue = new PriorityBlockingQueue<Integer>(capacityOfQueue); // Add numbers to PriorityBlockingQueue PrioQueue.offer( 35658786 ); PrioQueue.offer( 5278367 ); PrioQueue.offer( 74381793 ); PrioQueue.offer( 87625142 ); // create an array of elements of PriorityBlockingQueue Object[] array = PrioQueue.toArray(); // print elements of array System.out.println( "Array Contains:" ); for (Object i : array) { System.out.print(i + " " ); } } } |
Array Contains: 5278367 35658786 74381793 87625142
Example 2: Program to demonstrate toArray() method on PriorityBlockingQueue to create an array of Strings from a PriorityBlockingQueue which contains String values.
Java
// Java Program Demonstrate toArray() // method of PriorityBlockingQueue import java.util.concurrent.PriorityBlockingQueue; import java.util.*; public class GFG { public static void main(String[] args) { // define capacity of PriorityBlockingQueue int capacityOfQueue = 5 ; // create object of PriorityBlockingQueue which contains // name of students PriorityBlockingQueue<String> names = new PriorityBlockingQueue<String>(capacityOfQueue); // Add names of students of girls college names.offer( "Joyita" ); names.offer( "Bristi" ); names.offer( "Riya" ); // Create a array by calling toArray() method Object[] array = names.toArray(); // Print List of names System.out.println( "Queue is " + names); // Print elements of array System.out.println( "The array created by toArray() is:" ); for (Object i : array) { System.out.println(i + " " ); } } } |
Queue is [Bristi, Joyita, Riya] The array created by toArray() is: Bristi Joyita Riya
toArray(T[] a)
The toArray(T[] a) method of PriorityBlockingQueue is used to return an array containing the same elements as that of this PriorityBlockingQueue, in proper sequence. This method differs from toArray() in only one condition. The type of the returned array is the same as the passed array in the parameter, if the PriorityBlockingQueue size is less than or equal to the passed array. Otherwise, a new array is allocated with the type same as the specified array, and size of the array is equal to the size of this queue. This method behaves as a bridge between array and collections.
Syntax:
public <T> T[] toArray(T[] a)
Parameter: This method takes an array as parameter into which all of the elements of the queue are to be copied, if it is big enough. Otherwise, a new array of the same runtime type is allocated to this.
Return Value: This method returns an array containing all of the elements in this queue.
Exception This method throws following exceptions:
- ArrayStoreException: When the passed array is of the different type from the type of elements of PriorityBlockingQueue.
- NullPointerException: If the passed array is Null.
Below programs illustrates toArray(T[] a) method of PriorityBlockingQueue class:
Example 1: Program to demonstrate toArray(T[] a) method on PriorityBlockingQueue.
Java
// Java Program Demonstrate toArray(T[] a) // method of PriorityBlockingQueue import java.util.concurrent.PriorityBlockingQueue; import java.util.concurrent.TimeUnit; public class GFG { public static void main(String[] args) throws InterruptedException { // define capacity of PriorityBlockingQueue int capacityOfQueue = 3 ; // create object of PriorityBlockingQueue PriorityBlockingQueue<String> PrioQueue = new PriorityBlockingQueue<String>(capacityOfQueue); // Add names of students of girls college PrioQueue.offer( "Joyi" ); PrioQueue.offer( "Rani" ); PrioQueue.offer( "Riya" ); // Creating the array String[] array = new String[capacityOfQueue]; // Calling toArray(T[] a) method Object[] ReturnArray = PrioQueue.toArray(array); // Print queue System.out.println( "Queue is " + PrioQueue); // Print elements of array passed as parameter System.out.println(); System.out.println( "The array passed to toArray() is:" ); for (Object i : array) { System.out.println(i); } // Print elements of array returned by method toArray() System.out.println(); System.out.println( "The array returned by toArray() is:" ); for (Object i : ReturnArray) { System.out.println(i); } } } |
Queue is [Joyi, Rani, Riya] The array passed to toArray() is: Joyi Rani Riya The array returned by toArray() is: Joyi Rani Riya
Example 2: Program to demonstrate exception thrown by toArray(T[] a) method of PriorityBlockingQueue.
Java
// Java Program Demonstrate toArray(T[] a) // method of PriorityBlockingQueue import java.util.concurrent.PriorityBlockingQueue; import java.util.concurrent.TimeUnit; public class GFG { public static void main(String[] args) throws InterruptedException { // define capacity of PriorityBlockingQueue int capacityOfQueue = 3 ; // create object of PriorityBlockingQueue PriorityBlockingQueue<String> PrioQueue = new PriorityBlockingQueue<String>(capacityOfQueue); // Add names of students of girls college PrioQueue.offer( "Joyi" ); PrioQueue.offer( "Rani" ); PrioQueue.offer( "Riya" ); // Creating the array with null value String[] array = null ; try { // Calling toArray(T[] a) method Object[] ReturnArray = PrioQueue.toArray(array); } catch (Exception e) { System.out.println( "Exception thrown:" + e); } } } |
Exception thrown:java.lang.NullPointerException
Reference:
- https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html#toArray–
- https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html#toArray-T:A-