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, waitMethods inherited from interface java.util.Collection
equals, hashCode, parallelStream, removeIf, spliterator, stream, toArrayMethods inherited from interface java.lang.Iterable
forEach
-
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>
-