Java Collections — 5 — Queues

Merhaba,

Java koleksiyonlarının 4. serisinde Queues konusunu inceliyor olacağız.

Queue (Kuyruk) Arayüzü

Bu sınıf stack sınıfından farklı olarak özel durumlar dışında ilk giren ilk çıkar mantığı ile çalışmaktadır. FIFO (first in first out)

Üstarayüzleri: Collection, Iterable
Altarayüzleri: BlockingQueue
Kılgılayan sınıflar: AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlocking Queue, LinkedList, PriorityBlockingQueue, PriorityQueue, SynchronousQueue ‘dir
Bu arayüze ait metotlar;

  • add(eleman): Parametrede verilen elemanı kuyruğa ekler. İşlemin başarısız olması durumunda hata fırlatır.
  • offer(eleman): Parametrede verilen elemanı kuyruğa ekler. İşlemin başarısız olması durumunda null döner.
  • poll(): Kuyruğun başındaki elemanı kuyruktan çıkartır.
  • peek(): Kuyrukta sıradaki elemana ulaşmak için kullanılır.

Örnek:

public class App2 {
public static void main(String[] args) {
Queue kuyruk = new LinkedList();
kuyruk.offer("Gökhan");
kuyruk.offer("Aslı");
kuyruk.offer("Aykut");
kuyruk.offer("Cem");
kuyruk.offer("Fatma");
kuyruk.offer("Görkem");
kuyruk.offer("Ilknur");
Iterator it = kuyruk.iterator();
System.out.println("Kuyruk boyutu: " + kuyruk.size());
while (it.hasNext()) {
String iteratorValue = (String) it.next();
System.out.println("Kuyrukta sonraki öğe :" + iteratorValue);
}
System.out.println("Queue.peek() : Sıradaki Eleman: " + kuyruk.peek());
System.out.println("Queue.poll() : Çıkartılan Eleman :" + kuyruk.poll());
System.out.println("Kuyruğun kalan öğe sayısı :" + kuyruk.size());
}
}

Programımız çalıştığında şu çıktıyı verecektir:
Konuyla alakalı bir başka örneği buradan inceleyebilirsiniz.
Iterator()
Koleksiyonların elemanları için bir iterator nesnesi döner. Bu nesne ile koleksiyon elemanları üzerinde dolaşabilir, işlem yapabilir ve koleksiyonun elemanlarını okuyabiliriz. Burada hasNext() metodu ile koleksiyondaki yeni elemanlar kontrol edilir. next() metodu ile koleksiyonun elemanları sırası ile alınır. remove() metodu ile elemanlar koleksiyondan çıkarılır.
Örnek:
public class App {
public static void main(String[] args) {
LinkedList animals = new LinkedList();
animals.add("fox");
animals.add("cat");
animals.add("dog");
animals.add("rabbit");
Iterator it = animals.iterator();
while (it.hasNext()){
String value = it.next();
System.out.println(value);
if (value.equals("cat")){
it.remove();
}
}
System.out.println();
// Modern iterator Java 5 and later.
for (String animal: animals){
System.out.println(animal);
// animals.remove(2);
}
}
}
Program çalıştığında çıktı şu şekilde olacaktır:
Iterator örneğine buradan ulaşabilirsiniz.