Queue ve Deque
- Java kursu
- Orta seviye
- Ders 91/116
- 5 dk
Queue<E> ve Deque<E> ile kuyruk öğrenirsin.
Queue<E> arayüzü
Queue<E> ilk giren ilk çıkar (FIFO) sırasıdır. ArrayDeque en hızlı somut uygulamadır: Queue<String> todo = new ArrayDeque<>();.
offer(e) sona ekler, poll() baştaki elemanı çıkarıp döndürür, peek() baştaki elemanı gösterir ama listeden silmez. Kuyruk boşsa poll ve peek null döner; remove ise hata fırlatır.
Deque iki üçlü kuyruk
Deque<E> (double-ended queue) her iki uçtan da ekleme ve çıkarma yapar. ArrayDeque hem Queue hem Deque uygulamadır. Metotlar: addFirst(e), addLast(e), removeFirst(), removeLast(), peekFirst(), peekLast().
Örneğin bir tarayıcı geçmişi geri/ileri yapısında addLast ile ileri, removeLast ile geri simülasyonu yapılır. Stack gerektiğinde push/pop de Deque üzerinde çalışır; eski Stack sınıfı yerine ArrayDeque önerilir.
Uygulama Yapılacaklar kuyruğu kur
Queue<String> todo = new ArrayDeque<>(); tanımla. todo.offer("Mail at"); ve todo.offer("Toplantı"); ile iki iş ekle. String first = todo.poll(); ile ilk işi çıkar ve System.out.println(first); ile yazdır. System.out.println(todo.size()); ile kalan iş sayısını yazdır.
Başlangıç kodu
import java.util.Queue;
import java.util.ArrayDeque;
public class Main {
public static void main(String[] args) {
// Queue<String> tanimla, iki is ekle, ilk isi cikar ve yazdir, kalan sayi
}
}Örnek çözüm
import java.util.Queue;
import java.util.ArrayDeque;
public class Main {
public static void main(String[] args) {
Queue<String> todo = new ArrayDeque<>();
todo.offer("Mail at");
todo.offer("Toplantı");
String first = todo.poll();
System.out.println(first);
System.out.println(todo.size());
}
}Beklenen çıktı
Mail at 1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kuyruğa ekleme çağrısını tamamla
todo.____("Mail at");
todo.offer("Mail at");
Açıklama: offer metodu kuyruğun sonuna eleman ekler.
2 todo.poll() ne yapar?
- Baştaki elemanı çıkarıp döndürür Doğru cevap
- Sadece baştaki elemanı gösterir
- Kuyruğun sonuna eleman ekler
- Kuyruğu boşaltır
Açıklama: poll baştaki elemanı çıkarıp döndürür; kuyruk boşsa null verir.
3 Queue/Deque metotlarını eşleştir
| Kavram | Anlamı |
|---|---|
offer(e) |
Sona ekler |
poll() |
Baştaki elemanı çıkarır |
peek() |
Baştaki elemanı gösterir |
addFirst(e) |
Başa ekler |