Defines a collection that allows objects to be removed in some well-defined
order.
The removal order can be based on insertion order (eg, a FIFO queue or a LIFO
stack), on access order (eg, an LRU cache), on some arbitrary comparator (eg,
a priority queue) or on any other well-defined ordering.
Note that the removal order is not necessarily the same as the iteration
order. A Buffer
implementation may have equivalent removal and
iteration orders, but this is not required.
This interface does not specify any behavior for
Object#equals(Object) and
Object#hashCode methods. It is
therefore possible for a Buffer
implementation to also also
implement
java.util.List,
java.util.Set or
Bag.