GTU OOP Program - 24
24). Define MYPriorityQueue class that extends Priority Queue to implement the Cloneable interface and implement the clone() method to clone a priority queue.
Class Program_24(Program_24.java)
public class Program_24 {
public static void main(String[] args) throws CloneNotSupportedException {
MyPriorityQueue<Integer> q1 = new MyPriorityQueue<>();
q1.offer(10);
q1.offer(20);
q1.offer(50);
MyPriorityQueue<Integer> q2 = q1.clone();
System.out.print("Queue 1: ");
while (q1.size() > 0) {
System.out.print(q1.remove() + " ");
}
System.out.println();
System.out.print("Queue2: ");
while (q2.size() > 0) {
System.out.print(q2.remove() + " ");
}
}
}
Class MyPriorityQueue (MyPriorityQueue.java)
import java.util.PriorityQueue;
public class MyPriorityQueue<E> extends PriorityQueue<E> implements Cloneable {
@Override
public MyPriorityQueue<E> clone() throws CloneNotSupportedException {
MyPriorityQueue<E> temp = new MyPriorityQueue<>();
temp.addAll((MyPriorityQueue<E>) super.clone());
return temp;
}
}
Output

Comments