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:
Iterable<T>,Collection<T>,Queue<T>
public class EvictingQueue<T> extends Object implements Queue<T>
AnEvictingQueueis 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
All Methods Instance Methods Concrete Methods 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(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(Object o)booleancontainsAll(Collection<?> c)Telement()booleanisEmpty()Iterator<T>iterator()booleanoffer(T t)Tpeek()Tpoll()intremainingCapacity()Tremove()booleanremove(Object o)booleanremoveAll(Collection<?> c)booleanretainAll(Collection<?> c)intsize()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
-
Methods inherited from interface java.util.Collection
equals, hashCode, parallelStream, removeIf, spliterator, stream, toArray
-
-
-
-
Constructor Detail
-
EvictingQueue
public EvictingQueue(int maximumSize)
Construct a newEvictingQueuethat holdsmaximumSizeelements.- Parameters:
maximumSize- The maximum number of elements that the queue can hold- Throws:
IllegalArgumentException- ifmaximumSizeis less than zero
-
-
Method Detail
-
remainingCapacity
public int remainingCapacity()
- Returns:
- the number of additional elements that the queue can accommodate before evictions occur
-
add
public boolean add(T t)
Add the given element to the queue, possibly forcing an eviction from the head ifremainingCapacity()is zero.
-
offer
public boolean offer(T t)
- Specified by:
offerin interfaceQueue<T>- See Also:
add(Object)
-
size
public int size()
- Specified by:
sizein interfaceCollection<T>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfaceCollection<T>
-
contains
public boolean contains(Object o)
- Specified by:
containsin interfaceCollection<T>
-
toArray
public Object[] toArray()
- Specified by:
toArrayin interfaceCollection<T>
-
toArray
public <T1> T1[] toArray(T1[] a)
- Specified by:
toArrayin interfaceCollection<T>
-
remove
public boolean remove(Object o)
- Specified by:
removein interfaceCollection<T>
-
containsAll
public boolean containsAll(Collection<?> c)
- Specified by:
containsAllin interfaceCollection<T>
-
addAll
public boolean addAll(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.- Specified by:
addAllin interfaceCollection<T>- Parameters:
c- the collection of elements to add- Returns:
- true if any elements were added to the queue
-
removeAll
public boolean removeAll(Collection<?> c)
- Specified by:
removeAllin interfaceCollection<T>
-
retainAll
public boolean retainAll(Collection<?> c)
- Specified by:
retainAllin interfaceCollection<T>
-
clear
public void clear()
- Specified by:
clearin interfaceCollection<T>
-
-