Class CircularFifoBuffer
java.lang.Object
java.util.AbstractCollection
org.apache.commons.collections.buffer.BoundedFifoBuffer
org.apache.commons.collections.buffer.CircularFifoBuffer
- All Implemented Interfaces:
Serializable
,Iterable
,Collection
,BoundedCollection
,Buffer
CircularFifoBuffer is a first in first out buffer with a fixed size that
replaces its oldest element if full.
The removal order of a CircularFifoBuffer
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)
, BoundedFifoBuffer.remove()
and BoundedFifoBuffer.get()
operations
all perform in constant time. All other operations perform in linear
time or worse.
Note that this implementation is not synchronized. The following can be
used to provide synchronized access to your CircularFifoBuffer
:
Buffer fifo = BufferUtils.synchronizedBuffer(new CircularFifoBuffer());
This buffer prevents null objects from being added.
This class is Serializable from Commons Collections 3.1.
- Since:
- Commons Collections 3.0
- Version:
- $Revision: 646777 $ $Date: 2008-04-10 14:33:15 +0200 (Thu, 10 Apr 2008) $
- Author:
- Stefano Fornari, Stephen Colebourne
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor that creates a buffer with the default size of 32.CircularFifoBuffer
(int size) Constructor that creates a buffer with the specified size.CircularFifoBuffer
(Collection coll) Constructor that creates a buffer from the specified collection. -
Method Summary
Methods inherited from class org.apache.commons.collections.buffer.BoundedFifoBuffer
clear, get, isEmpty, isFull, iterator, maxSize, remove, size
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, toArray
-
Constructor Details
-
CircularFifoBuffer
public CircularFifoBuffer()Constructor that creates a buffer with the default size of 32. -
CircularFifoBuffer
public CircularFifoBuffer(int size) Constructor that creates a buffer with the specified size.- Parameters:
size
- the size of the buffer (cannot be changed)- Throws:
IllegalArgumentException
- if the size is less than 1
-
CircularFifoBuffer
Constructor that creates a buffer from the specified collection. The collection size also sets the buffer size- Parameters:
coll
- the collection to copy into the buffer, may not be null- Throws:
NullPointerException
- if the collection is null
-
-
Method Details
-
add
If the buffer is full, the least recently added element is discarded so that a new element can be inserted.- Specified by:
add
in interfaceCollection
- Overrides:
add
in classBoundedFifoBuffer
- Parameters:
element
- the element to add- Returns:
- true, always
-