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 menggunakanComparableatauComparator.
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());
}
}