import java.util.Comparator; public class Exercise25_14 { public static void main(String[] args) { new Exercise25_14(); } public Exercise25_14() { MyPriorityQueue queue = new MyPriorityQueue(new GeometricObjectComparator()); queue.enqueue(new Circle(3)); queue.enqueue(new Circle(5)); queue.enqueue(new Circle(1)); System.out.println(queue.dequeue()); } static class MyPriorityQueue { HeapWithComparator heap; private Comparatorcomparator; /** Create a default heap */ public MyPriorityQueue(Comparatorcomparator) { this.comparator = comparator; heap = new HeapWithComparator(comparator); } public void enqueue(E newObject) { heap.add(newObject); } public Object dequeue() { return heap.remove(); } public int getSize() { return heap.getSize(); } } }