Java Queue
Queue
digunakan untuk memasukan data berdasarkan antrian (siapa yang pertama masuk dia yang pertama keluar) FIFO (First In First Out). Interface Queue
mempunyai 3 class konkrit yaitu ArrayDeque
, PriorityQueue
dan LinkedList
.
source: https://www.programiz.com/java-programming/queue
Interface Queue
menyediakan beberapa method untuk menambahkan, menghapus, dan memeriksa elemen dalam antrian. Berikut ini adalah beberapa method yang paling umum digunakan:
add(element)
: Menambahkan elemen ke bagian belakang antrian. Jika berhasil akan mengembalikan nilaitrue
. Jika gagal atau antrian penuh, akan menimbulkan exception.offer(element)
: Menambahkan elemen ke bagian belakang antrian. Jika berhasil akan mengembalikan nilaitrue
. Jika gagal atau antrian penuh, mengembalikan nilaifalse
.remove()
: Menghapus dan mengembalikan elemen di bagian depan antrian. Jika antrian kosong, akan menimbulkan exception.poll()
: Menghapus dan mengembalikan elemen di bagian depan antrian. Jika antrian kosong, akan mengembalikan nilainull
.element()
: Mengembalikan elemen di bagian depan antrian tanpa menghapusnya. Jika antrian kosong, akan menimbulkan exception.peek()
: Mengembalikan elemen di bagian depan antrian tanpa menghapusnya. Jika antrian kosong, akan mengembalikan nilainull
.
Interface Queue
diimplementasikan oleh beberapa class di Java, termasuk LinkedList
, ArrayDeque
, dan PriorityQuee
. Masing-masing class ini menyediakan implementasi yang berbeda dari interface Queue
, dengan karakteristik dan fitur kinerja yang berbeda.
source: https://www.programiz.com/java-programming/queue
ArrayDeque
vs LinkedList
vs PriorityQueue
ArrayDeque
= menggunakan array sebagai implementasi queue nyaLinkedList
= menggunakan double linked list sebagai implementasi queue nyaPriorityQueue
= menggunakan array sebagai implementasi queue nya, namun diurutkan menggunakanComparable
atauComparator
.
Berikut Contoh penggunaan Queue
:
import java.util.ArrayDeque;
import java.util.PriorityQueue;
import java.util.Queue;
public class DemoQueue {
public static void main(String[] args) {
// Queue<String> names = new ArrayDeque<String>();
Queue<String> names = new PriorityQueue<String>(); // mengurutkan data element dengan menggukan comparator
names.add("Ucup");
names.add("Dika");
names.add("Anton");
names.add("Shena");
for ( String next = names.poll(); next != null; next = names.poll() ) {
System.out.println(next);
}
System.out.println(names.size());
}
}