Class CircularFifoQueue<E>
java.lang.Object
java.util.AbstractCollection<E>
org.apache.commons.collections4.queue.CircularFifoQueue<E>
- Type Parameters:
E
- the type of elements in this collection
- All Implemented Interfaces:
Serializable
,Iterable<E>
,Collection<E>
,Queue<E>
,BoundedCollection<E>
public class CircularFifoQueue<E>
extends AbstractCollection<E>
implements Queue<E>, BoundedCollection<E>, Serializable
CircularFifoQueue is a first-in first-out queue with a fixed size that
replaces its oldest element if full.
The removal order of a CircularFifoQueue
is based on the
insertion order; elements are removed in the same order in which they
were added. The iteration order is the same as the removal order.
The add(Object)
, remove()
, peek()
, poll()
,
offer(Object)
operations all perform in constant time.
All other operations perform in linear time or worse.
This queue prevents null objects from being added.
- Since:
- 4.0
- See Also:
-
Constructor Summary
ConstructorDescriptionConstructor that creates a queue with the default size of 32.CircularFifoQueue
(int size) Constructor that creates a queue with the specified size.CircularFifoQueue
(Collection<? extends E> coll) Constructor that creates a queue from the specified collection. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Adds the given element to this queue.void
clear()
Clears this queue.element()
get
(int index) Returns the element at the specified position in this queue.boolean
Returnstrue
if the capacity limit of this queue has been reached, i.e. the number of elements stored in the queue equals its maximum size.boolean
isEmpty()
Returns true if this queue is empty; false otherwise.boolean
isFull()
Returns true if this collection is full and no new elements can be added.iterator()
Returns an iterator over this queue's elements.int
maxSize()
Gets the maximum size of the collection (the bound).boolean
Adds the given element to this queue.peek()
poll()
remove()
int
size()
Returns the number of elements stored in the queue.Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, remove, removeAll, retainAll, toArray, toArray, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
addAll, contains, containsAll, equals, hashCode, parallelStream, remove, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArray
-
Constructor Details
-
CircularFifoQueue
public CircularFifoQueue()Constructor that creates a queue with the default size of 32. -
CircularFifoQueue
Constructor that creates a queue from the specified collection. The collection size also sets the queue size.- Parameters:
coll
- the collection to copy into the queue, may not be null- Throws:
NullPointerException
- if the collection is null
-
CircularFifoQueue
Constructor that creates a queue with the specified size.- Parameters:
size
- the size of the queue (cannot be changed)- Throws:
IllegalArgumentException
- if the size is < 1
-
-
Method Details
-
add
Adds the given element to this queue. If the queue is full, the least recently added element is discarded so that a new element can be inserted.- Specified by:
add
in interfaceCollection<E>
- Specified by:
add
in interfaceQueue<E>
- Overrides:
add
in classAbstractCollection<E>
- Parameters:
element
- the element to add- Returns:
- true, always
- Throws:
NullPointerException
- if the given element is null
-
clear
Clears this queue.- Specified by:
clear
in interfaceCollection<E>
- Overrides:
clear
in classAbstractCollection<E>
-
element
-
get
Returns the element at the specified position in this queue.- Parameters:
index
- the position of the element in the queue- Returns:
- the element at position
index
- Throws:
NoSuchElementException
- if the requested position is outside the range [0, size)
-
isAtFullCapacity
Returnstrue
if the capacity limit of this queue has been reached, i.e. the number of elements stored in the queue equals its maximum size.- Returns:
true
if the capacity limit has been reached,false
otherwise- Since:
- 4.1
-
isEmpty
Returns true if this queue is empty; false otherwise.- Specified by:
isEmpty
in interfaceCollection<E>
- Overrides:
isEmpty
in classAbstractCollection<E>
- Returns:
- true if this queue is empty
-
isFull
Returns true if this collection is full and no new elements can be added.A
CircularFifoQueue
can never be full, thus this returns alwaysfalse
.- Specified by:
isFull
in interfaceBoundedCollection<E>
- Returns:
- always returns
false
-
iterator
Returns an iterator over this queue's elements.- Specified by:
iterator
in interfaceCollection<E>
- Specified by:
iterator
in interfaceIterable<E>
- Specified by:
iterator
in classAbstractCollection<E>
- Returns:
- an iterator over this queue's elements
-
maxSize
Gets the maximum size of the collection (the bound).- Specified by:
maxSize
in interfaceBoundedCollection<E>
- Returns:
- the maximum number of elements the collection can hold
-
offer
Adds the given element to this queue. If the queue is full, the least recently added element is discarded so that a new element can be inserted.- Specified by:
offer
in interfaceQueue<E>
- Parameters:
element
- the element to add- Returns:
- true, always
- Throws:
NullPointerException
- if the given element is null
-
peek
-
poll
-
remove
-
size
Returns the number of elements stored in the queue.- Specified by:
size
in interfaceCollection<E>
- Specified by:
size
in classAbstractCollection<E>
- Returns:
- this queue's size
-