19 Eylül 2018 Çarşamba

EvictingQueue Sınıfı

Giriş
Guava'da "Circular Ring" olarak tabir edilebilecek iki tane temel veriyapısı var.Bunlar şöyle.
EvictingQueue
MinMaxPriorityQueue

Açıklaması şöyle. Kendi içinde ArrayDequeue kullanır.
A non-blocking queue which automatically evicts elements from the head of the queue when attempting to add new elements onto the queue and it is full. An evicting queue must be configured with a maximum size. Each time an element is added to a full queue, the queue automatically removes its head element. This is different from conventional bounded queues, which either block or reject new elements when full.
This class is not thread-safe, and does not accept null elements.
Kullanım
Şöyle yaparız
Queue<SomeRandomBusinessObject> items = Queues.synchronizedQueue(
  EvictingQueue.create(queueSize));

add metodu
Kapasitesi dolunca en eski elemanı siler.
Örnek
Şöyle yaparız.
EvictingQueue<String> queue = EvictingQueue.create(2);
queue.add("a");
queue.add("b");
queue.add("c");
queue.add("d");
System.out.print(queue); //outputs [c, d]
remove metodu
En eski elemanı döndürür.

Hiç yorum yok:

Yorum Gönder