Package org.elasticsearch.common.collect
Class EvictingQueue<T>
java.lang.Object
org.elasticsearch.common.collect.EvictingQueue<T>
- Type Parameters:
T- The type of elements in the queue.
- All Implemented Interfaces:
java.lang.Iterable<T>,java.util.Collection<T>,java.util.Queue<T>
public class EvictingQueue<T>
extends java.lang.Object
implements java.util.Queue<T>
An
EvictingQueue is a non-blocking queue which is limited to a maximum size; when new elements are added to a
full queue, elements are evicted from the head of the queue to accommodate the new elements.-
Constructor Summary
Constructors Constructor Description EvictingQueue(int maximumSize)Construct a newEvictingQueuethat holdsmaximumSizeelements. -
Method Summary
Modifier and Type Method Description booleanadd(T t)Add the given element to the queue, possibly forcing an eviction from the head ifremainingCapacity()is zero.booleanaddAll(java.util.Collection<? extends T> c)Add the given elements to the queue, possibly forcing evictions from the head ifremainingCapacity()is zero or becomes zero during the execution of this method.voidclear()booleancontains(java.lang.Object o)booleancontainsAll(java.util.Collection<?> c)Telement()booleanisEmpty()java.util.Iterator<T>iterator()booleanoffer(T t)Tpeek()Tpoll()intremainingCapacity()Tremove()booleanremove(java.lang.Object o)booleanremoveAll(java.util.Collection<?> c)booleanretainAll(java.util.Collection<?> c)intsize()java.lang.Object[]toArray()<T1> T1[]toArray(T1[] a)Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
EvictingQueue
public EvictingQueue(int maximumSize)Construct a newEvictingQueuethat holdsmaximumSizeelements.- Parameters:
maximumSize- The maximum number of elements that the queue can hold- Throws:
java.lang.IllegalArgumentException- ifmaximumSizeis less than zero
-
-
Method Details
-
remainingCapacity
public int remainingCapacity()- Returns:
- the number of additional elements that the queue can accommodate before evictions occur
-
add
Add the given element to the queue, possibly forcing an eviction from the head ifremainingCapacity()is zero. -
offer
- Specified by:
offerin interfacejava.util.Queue<T>- See Also:
add(Object)
-
remove
- Specified by:
removein interfacejava.util.Queue<T>
-
poll
- Specified by:
pollin interfacejava.util.Queue<T>
-
element
- Specified by:
elementin interfacejava.util.Queue<T>
-
peek
- Specified by:
peekin interfacejava.util.Queue<T>
-
size
public int size()- Specified by:
sizein interfacejava.util.Collection<T>
-
isEmpty
public boolean isEmpty()- Specified by:
isEmptyin interfacejava.util.Collection<T>
-
contains
public boolean contains(java.lang.Object o)- Specified by:
containsin interfacejava.util.Collection<T>
-
iterator
-
toArray
public java.lang.Object[] toArray()- Specified by:
toArrayin interfacejava.util.Collection<T>
-
toArray
public <T1> T1[] toArray(T1[] a)- Specified by:
toArrayin interfacejava.util.Collection<T>
-
remove
public boolean remove(java.lang.Object o)- Specified by:
removein interfacejava.util.Collection<T>
-
containsAll
public boolean containsAll(java.util.Collection<?> c)- Specified by:
containsAllin interfacejava.util.Collection<T>
-
addAll
Add the given elements to the queue, possibly forcing evictions from the head ifremainingCapacity()is zero or becomes zero during the execution of this method.- Specified by:
addAllin interfacejava.util.Collection<T>- Parameters:
c- the collection of elements to add- Returns:
- true if any elements were added to the queue
-
removeAll
public boolean removeAll(java.util.Collection<?> c)- Specified by:
removeAllin interfacejava.util.Collection<T>
-
retainAll
public boolean retainAll(java.util.Collection<?> c)- Specified by:
retainAllin interfacejava.util.Collection<T>
-
clear
public void clear()- Specified by:
clearin interfacejava.util.Collection<T>
-