Deque
Deque (cara sebutan ‘deck’) boleh menggunakan kaedah first in, first
out (FIFO) dan last in, first out (LIFO). Cara untuk menggunakan
kaedah FIFO sama sahaja dengan menggunakan queue, jadi kita akan lihat
kaedah LIFO pula. Class yang menggunakan interface Deque
ialah
ArrayDeque
dan LinkedList
.
ArrayDeque
Kaedah LIFO boleh diibaratkan seperti membuat burger. Kita letak bahagian-bahagian burger bermula dari bawah ke atas. Apabila kita hendak lihat daging apa, kita selak roti yang di atas.
Contoh kaedah LIFO menggunakan ArrayDeque:
package datastructure;
import java.util.ArrayDeque;
import java.util.Deque;
public class ContohDeque {
public static void main(String[] args) {
Deque<String> burger = new ArrayDeque<>();
burger.push("roti");
burger.push("sayur");
burger.push("daging");
burger.push("roti");
System.out.println("Susunan burger:");
for (String partBurger : burger) {
System.out.println(partBurger);
}
System.out.println("Oops, lupa letak sos!");
String rotiDiTangan = burger.pop(); // keluarkan roti paling atas
burger.push("sos + mayonis"); // tambah sos
burger.push(rotiDiTangan); // letak balik roti
System.out.println("Susunan burger yang baru:");
for (String partBurger : burger) {
System.out.println(partBurger);
}
}
}
Method yang digunakan untuk LIFO ialah:
push()
– untuk memasukkan data di hujung/ataspop()
– keluarkan data di hujung/ataspeek()
– untuk mengakses data di hujung/atas tanpa mengeluarkan data tersebut
Method yang boleh digunakan untuk FIFO pula adalah sama seperti Queue
iaitu offer()
, poll()
, dan peek()
.
LinkedList
Cara gunanya sama sahaja dengan ArrayDeque. Secara umumnya, ArrayDeque lebih efisyen berbanding LinkedList.