Class SetQueue<T>

  • Type Parameters:
    T - type of elements in the queue

    public class SetQueue<T>
    extends java.lang.Object

    A generic queue-like implementation (supporting operations addIfNotPresent, poll, contains, and isEmpty) which restricts a queue element to appear at most once. If the element is already present addIfNotPresent(T) returns false.

    Elements must not be null.

    Concurrent Semantics

    This implementation is not thread-safe.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Set<T> members  
      private java.util.Queue<T> queue  
    • Constructor Summary

      Constructors 
      Constructor Description
      SetQueue()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean addIfNotPresent​(T item)
      Add an element to the back of the queue and return true, or else return false.
      void clear()
      Remove all items from the queue.
      boolean contains​(T item)  
      boolean isEmpty()  
      T poll()
      Remove the head of the queue and return it.
      boolean remove​(T item)
      Remove item from queue, if present.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • members

        private final java.util.Set<T> members
      • queue

        private final java.util.Queue<T> queue
    • Constructor Detail

      • SetQueue

        public SetQueue()
    • Method Detail

      • addIfNotPresent

        public boolean addIfNotPresent​(T item)
        Add an element to the back of the queue and return true, or else return false.
        Parameters:
        item - to add
        Returns:
        true if the element was added, false if it is already present.
      • poll

        public T poll()
        Remove the head of the queue and return it.
        Returns:
        head element of the queue, or null if the queue is empty.
      • contains

        public boolean contains​(T item)
        Parameters:
        item - to look for in queue
        Returns:
        true if and only if item is in the queue.
      • isEmpty

        public boolean isEmpty()
        Returns:
        true if and only if the queue is empty.
      • remove

        public boolean remove​(T item)
        Remove item from queue, if present.
        Parameters:
        item - to remove
        Returns:
        true if and only if item was initially present and was removed.
      • clear

        public void clear()
        Remove all items from the queue.