Class CircularFifoQueue<E>

  • Type Parameters:
    E - the type of elements held in this collection
    All Implemented Interfaces:
    Serializable, Iterable<E>, Collection<E>, Queue<E>

    public class CircularFifoQueue<E>
    extends AbstractCollection<E>
    implements Queue<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.
    See Also:
    Serialized Form
    • Constructor Detail

      • CircularFifoQueue

        public CircularFifoQueue()
        Constructor that creates a queue with the default size of 32.
      • CircularFifoQueue

        public CircularFifoQueue​(int size)
        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
      • CircularFifoQueue

        public CircularFifoQueue​(Collection<? extends E> coll)
        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
    • Method Detail

      • size

        public int size()
        Returns the number of elements stored in the queue.
        Specified by:
        size in interface Collection<E>
        Specified by:
        size in class AbstractCollection<E>
        Returns:
        this queue's size
      • isEmpty

        public boolean isEmpty()
        Returns true if this queue is empty; false otherwise.
        Specified by:
        isEmpty in interface Collection<E>
        Overrides:
        isEmpty in class AbstractCollection<E>
        Returns:
        true if this queue is empty
      • isFull

        public static boolean isFull()

        A CircularFifoQueue can never be full, thus this returns always false.

        Returns:
        always returns false
      • isAtFullCapacity

        public boolean isAtFullCapacity()
        Returns true 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
      • maxSize

        public int maxSize()
        Gets the maximum size of the collection (the bound).
        Returns:
        the maximum number of elements the collection can hold
      • add

        public boolean add​(E element)
        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 interface Collection<E>
        Specified by:
        add in interface Queue<E>
        Overrides:
        add in class AbstractCollection<E>
        Parameters:
        element - the element to add
        Returns:
        true, always
        Throws:
        NullPointerException - if the given element is null
      • get

        public E get​(int index)
        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)
      • offer

        public boolean offer​(E element)
        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 interface Queue<E>
        Parameters:
        element - the element to add
        Returns:
        true, always
        Throws:
        NullPointerException - if the given element is null
      • poll

        public E poll()
        Specified by:
        poll in interface Queue<E>
      • element

        public E element()
        Specified by:
        element in interface Queue<E>
      • peek

        public E peek()
        Specified by:
        peek in interface Queue<E>
      • remove

        public E remove()
        Specified by:
        remove in interface Queue<E>