how to convert a PriorityQueue to Array using collections in java
Previous | Home | Next |
In this example we are going to convert a PriorityQueue to a linear using collections.
For creating a PriorityQueue first of all we have to import the java.util package in which the java.util.PriorityQueue class is defined. In this example we have created a class named CollectionsExample in which we created an object of the PriorityQueue and added some elements to the queue.
In this example we have used the toArray() method on the object of the PriorityQueue object for converting the queue to a linear array.
In addition to that we have created a user defined method named Priorityqueuetoarray(PriorityQueue pq, Object[] array) which takes the PriorityQueue object and Object [] array as parameters. This method will convert the elements of the pq to a linear array and store all those elements in the Object [] array. Then this method will display the elements of the created array.
In this example we have created a class named CollectionsExample, in which we have created an object of the PriorityQueue pq, and then added some elements to it by using the add(Object obj) to it. We have also created an Object[] array of same size as that of the PriorityQueue. After doing that, we have called the Priorityqueuetoarray(pq, array) method.
Inside this method we have stored the values returned by invoking the toArray() method on the object of PriorityQueue i.e pq. We have also created an Integer[] array having the same size as that of the Object [] array. Then we have typecasted each element of the Object[] array to Integer and store them in the Integer[] arr.
Then, we have displayed the values of the array so created which contains the elements of the PriorityQueue.
package r4r.co.in;
import java.util.*;
public class CollectionsExample {
/**
* @param args
*/
public static void main(String[] args) throws NullPointerException, ClassCastException
{
// TODO Auto-generated method stub
try
{
PriorityQueue<Integer> pq=new PriorityQueue<Integer>();
pq.add(1); // adding some random values to priorityqueue pq
pq.add(2);
pq.add(3);
pq.add(4);
pq.add(5);
System.out.println("The contents of the PriorityQueue are: "+pq);
Iterator<Integer> itr=pq.iterator(); //invoking the iterator over the pq
System.out.println("The elements in the priority queue are: ");
while(itr.hasNext())
{
System.out.println(itr.next()); // displaying the elements of the queue
}
Object[] array=new Object[pq.size()];
Priorityqueuetoarray(pq, array);
}
catch(NullPointerException e)
{
e.printStackTrace();
}
catch(ClassCastException e)
{
e.printStackTrace();
}
}
/* The following method converts a PriorityQueue to a linear array
* This method takes two arguments one is PriorityQueue object and an array of Object type
*/
private static void Priorityqueuetoarray(PriorityQueue<Integer> pq, Object[] array)
{
array = pq.toArray(); // converting the priority queue to array using toArray in storing it in Object array
Integer[] arr=new Integer[array.length]; // creating an Integer array of same length as of the Object array
for(int i=0; i<array.length; i++)
{
arr[i]=(Integer)array[i]; // type casting the each element of Object array to Integer and storing in Integer array
}
System.out.println("The elements in the Array created are as follows: ");
for(int i=0; i<arr.length; i++)
{
System.out.println(arr[i]); // printing the Integer array elements
}
}
}
The output of the above example is the following one:
The contents of the PriorityQueue are: [1, 2, 3, 4, 5]
The elements in the priority queue are:
1
2
3
4
5
The elements in the Array created are as follows:
1
2
3
4
5
Previous | Home | Next |