import java.util.*;

public class AntreanAngka {
    public static void main(String[] args) {
        // Urutan alami: angka terkecil keluar lebih dulu (min-heap).
        PriorityQueue<Integer> antrean = new PriorityQueue<>();
        antrean.addAll(List.of(5, 1, 7, 3, 9, 2));

        // Iterasi mengikuti susunan internal heap, BUKAN urutan terurut.
        System.out.println("Iterasi : " + antrean);

        StringBuilder keluar = new StringBuilder();
        while (!antrean.isEmpty()) {
            keluar.append(antrean.poll()).append(" ");
        }
        System.out.println("Poll    : " + keluar.toString().trim());

        // Comparator terbalik: angka terbesar keluar lebih dulu (max-heap).
        PriorityQueue<Integer> besarDulu = new PriorityQueue<>(Comparator.reverseOrder());
        besarDulu.addAll(List.of(5, 1, 7, 3, 9, 2));
        StringBuilder keluarBesar = new StringBuilder();
        while (!besarDulu.isEmpty()) {
            keluarBesar.append(besarDulu.poll()).append(" ");
        }
        System.out.println("Max-poll: " + keluarBesar.toString().trim());
    }
}
