Menguasai Antarmuka Deque Java: Fitur, Metode, dan Contoh Praktis
Antarmuka Deque Java
Temukan bagaimana antarmuka Deque Java menyediakan double-ended queue serbaguna, dan pelajari cara memanfaatkan metodenya yang kuat dalam kode nyata.
Cara Kerja Deque
Berbeda dengan queue konvensional yang hanya enqueue di belakang dan dequeue dari depan, Deque (double-ended queue) memungkinkan Anda menambahkan dan menghapus elemen dari kedua ujung. Fleksibilitas ini menjadikannya ideal untuk pola penanganan data LIFO, FIFO, dan yang lebih kompleks.

Kelas yang Mengimplementasikan Deque
Untuk bekerja dengan Deque, pilih salah satu implementasi konkret berikut:
- ArrayDeque – array yang dapat diubah ukurannya yang menawarkan akses non-sinkronisasi yang cepat.
- LinkedList – daftar berambilan ganda yang mendukung elemen null dan menyediakan performa penyisipan yang kuat.

Menggunakan Deque dalam Kode Anda
Pertama, impor antarmuka:
import java.util.Deque;
Kemudian buat instance kelas konkret:
// Array implementation Deque<String> animal1 = new ArrayDeque<>(); // LinkedList implementation Deque<String> animal2 = new LinkedList<>();
Objek ini sekarang mengekspos semua operasi Deque.
Metode Utama Deque
Karena Deque memperluas Queue, ia mewarisi semua metode queue. Selain itu, ia menyediakan operasi khusus untuk kedua ujung:
- addFirst(e) – Menyisipkan
e di depan, melempar pengecualian jika deque penuh. - addLast(e) – Menambahkan
e di ekor, melempar pengecualian jika penuh. - offerFirst(e) – Mencoba menyisipkan di depan, mengembalikan
false jika penuh. - offerLast(e) – Mencoba menambahkan di ekor, mengembalikan
false jika penuh. - getFirst() / getLast() – Mengambil elemen pertama/terakhir, melempar pengecualian jika deque kosong.
- peekFirst() / peekLast() – Mengambil elemen pertama/terakhir, mengembalikan
null saat kosong. - removeFirst() / removeLast() – Menghapus dan mengembalikan elemen pertama/terakhir, melempar pengecualian saat kosong.
- pollFirst() / pollLast() – Menghapus dan mengembalikan elemen pertama/terakhir, mengembalikan
null jika kosong.
Deque sebagai Stack
Kelas Stack yang lama disinkronkan dan kurang efisien. Deque menawarkan alternatif modern yang tidak disinkronkan:
push(e) – Menambahkan e di depan. pop() – Menghapus dan mengembalikan elemen depan. peek() – Mengambil elemen depan tanpa menghapusnya.
Contoh Praktis dengan ArrayDeque
import java.util.Deque; import java.util.ArrayDeque; class Main { public static void main(String[] args) { Deque<Integer> numbers = new ArrayDeque<>(); // Populate the deque numbers.offer(1); // tail numbers.offerLast(2); // tail numbers.offerFirst(3); // head System.out.println("Deque: " + numbers); // Peek at both ends System.out.println("First Element: " + numbers.peekFirst()); System.out.println("Last Element: " + numbers.peekLast()); // Remove elements System.out.println("Removed First Element: " + numbers.pollFirst()); System.out.println("Removed Last Element: " + numbers.pollLast()); System.out.println("Updated Deque: " + numbers); } }
Output
Deque: [3, 1, 2] First Element: 3 Last Element: 2 Removed First Element: 3 Removed Last Element: 2 Updated Deque: [1]
Untuk wawasan lebih dalam, jelajahi dokumentasi Java ArrayDeque resmi.