import java.util.Comparator; public class MyPriorityQueueTest { public static void main(String[] args) { int[] data = { -5, 1, 10, 0, 100, 77, 80, -9, -7, 1 }; MyPriorityQueue maxFirstQueue = new Heap<>(new IntMaxComparator()); for (int i = 0; i < data.length; i++) { maxFirstQueue.offer(data[i]); } // 100, 80, 77, 10, 1, 1, 0, -5, -7, -9 while (!maxFirstQueue.isEmpty()) { System.out.print(maxFirstQueue.poll() + ", "); } System.out.println(); MyPriorityQueue minFirstQueue = new Heap<>(new IntMinComparator()); for (int i = 0; i < data.length; i++) { minFirstQueue.offer(data[i]); } // -9, -7, -5, 0, 1, 1, 10, 77, 80, 100 while (!minFirstQueue.isEmpty()) { System.out.print(minFirstQueue.poll() + ", "); } } static class IntMaxComparator implements Comparator { @Override public int compare(Integer o1, Integer o2) { return o1 - o2; } } static class IntMinComparator implements Comparator { @Override public int compare(Integer o1, Integer o2) { return o2 - o1; } } }