import java.util.*;

public class AntreanDuaUjung {
    public static void main(String[] args) {
        Deque<Integer> antrean = new ArrayDeque<>();

        // Isi dari kedua ujung: offerLast ke ekor, offerFirst ke kepala.
        antrean.offerLast(10);
        antrean.offerLast(20);
        antrean.offerFirst(5);
        antrean.offerLast(30);
        System.out.println("Isi          : " + antrean);

        // Membaca kedua ujung tanpa menghapus.
        System.out.println("peekFirst()  : " + antrean.peekFirst());
        System.out.println("peekLast()   : " + antrean.peekLast());

        // Mengambil dari kedua ujung.
        System.out.println("pollFirst()  : " + antrean.pollFirst());
        System.out.println("pollLast()   : " + antrean.pollLast());
        System.out.println("Sisa         : " + antrean);

        // Variabel bertipe Queue hanya melihat sisi FIFO (ekor masuk, kepala keluar).
        antrean.offer(99);
        System.out.println("Setelah offer(99): " + antrean);
        System.out.println("poll()       : " + antrean.poll());
        System.out.println("Sisa         : " + antrean);
    }
}
