Class ObjectArrayFIFOQueue<K>

  • All Implemented Interfaces:
    PriorityQueue<K>, Serializable

    public class ObjectArrayFIFOQueue<K>
    extends Object
    implements PriorityQueue<K>, Serializable
    A type-specific array-based FIFO queue, supporting also deque operations.

    Instances of this class represent a FIFO queue using a backing array in a circular way. The array is enlarged and shrunk as needed. You can use the trim() method to reduce its memory usage, if necessary.

    This class provides additional methods that implement a deque (double-ended queue).

    See Also:
    Serialized Form
    • Field Detail

      • INITIAL_CAPACITY

        public static final int INITIAL_CAPACITY
        The standard initial capacity of a queue.
        See Also:
        Constant Field Values
    • Constructor Detail

      • ObjectArrayFIFOQueue

        public ObjectArrayFIFOQueue​(int capacity)
        Creates a new empty queue with given capacity.
        Parameters:
        capacity - the initial capacity of this queue.
      • ObjectArrayFIFOQueue

        public ObjectArrayFIFOQueue()
        Creates a new empty queue with standard initial capacity.
    • Method Detail

      • comparator

        public Comparator<? super K> comparator()
        Returns the comparator associated with this queue, or null if it uses its elements' natural ordering.

        This implementation returns null (FIFO queues have no comparator).

        Specified by:
        comparator in interface PriorityQueue<K>
        Returns:
        the comparator associated with this sorted set, or null if it uses its elements' natural ordering.
      • dequeue

        public K dequeue()
        Description copied from interface: PriorityQueue
        Dequeues the first element from the queue.
        Specified by:
        dequeue in interface PriorityQueue<K>
        Returns:
        the dequeued element.
      • dequeueLast

        public K dequeueLast()
        Dequeues the last element from the queue.
        Returns:
        the dequeued element.
        Throws:
        NoSuchElementException - if the queue is empty.
      • enqueue

        public void enqueue​(K x)
        Description copied from interface: PriorityQueue
        Enqueues a new element.
        Specified by:
        enqueue in interface PriorityQueue<K>
        Parameters:
        x - the element to enqueue.
      • enqueueFirst

        public void enqueueFirst​(K x)
        Enqueues a new element as the first element (in dequeuing order) of the queue.
        Parameters:
        x - the element to enqueue.
      • first

        public K first()
        Description copied from interface: PriorityQueue
        Returns the first element of the queue.
        Specified by:
        first in interface PriorityQueue<K>
        Returns:
        the first element.
      • last

        public K last()
        Description copied from interface: PriorityQueue
        Returns the last element of the queue, that is, the element the would be dequeued last (optional operation).

        This default implementation just throws an UnsupportedOperationException.

        Specified by:
        last in interface PriorityQueue<K>
        Returns:
        the last element.
      • clear

        public void clear()
        Description copied from interface: PriorityQueue
        Removes all elements from this queue.
        Specified by:
        clear in interface PriorityQueue<K>
      • trim

        public void trim()
        Trims the queue to the smallest possible size.
      • size

        public int size()
        Description copied from interface: PriorityQueue
        Returns the number of elements in this queue.
        Specified by:
        size in interface PriorityQueue<K>
        Returns:
        the number of elements in this queue.