Class UnmodifiableDeque<E>

  • Type Parameters:
    E - the type of elements held in this deque
    All Implemented Interfaces:
    java.io.Serializable, java.lang.Iterable<E>, java.util.Collection<E>, java.util.Deque<E>, java.util.Queue<E>

    public class UnmodifiableDeque<E>
    extends UnmodifiableQueue<E>
    implements java.util.Deque<E>, java.io.Serializable
    An unmodifiable view of a Deque. This implementation decorates a given deque and prevents any modification operations from succeeding. All mutation methods, such as addFirst(E), addLast(E), push(E), and others, throw an UnsupportedOperationException.

    The behavior of this class is undefined if the underlying deque is modified directly while this view exists. It is intended to be used for creating immutable snapshots of deques where modification attempts are not allowed.

    Example Usage

    
     Deque<String> mutableDeque = new LinkedList<>();
     mutableDeque.addFirst("World");
     Deque<String> unmodifiableDeque = new UnmodifiableDeque<>(mutableDeque);
     unmodifiableDeque.addFirst("Hello"); // throws UnsupportedOperationException
      

    This class is serializable if the underlying deque is serializable.

    Since:
    1.0.0
    Author:
    Mercy
    See Also:
    Deque, CollectionUtils.unmodifiableIterator(Iterator), Serialized Form
    • Constructor Detail

      • UnmodifiableDeque

        public UnmodifiableDeque​(java.util.Deque<E> deque)
    • Method Detail

      • addFirst

        public void addFirst​(E e)
        Specified by:
        addFirst in interface java.util.Deque<E>
      • addLast

        public void addLast​(E e)
        Specified by:
        addLast in interface java.util.Deque<E>
      • offerFirst

        public boolean offerFirst​(E e)
        Specified by:
        offerFirst in interface java.util.Deque<E>
      • offerLast

        public boolean offerLast​(E e)
        Specified by:
        offerLast in interface java.util.Deque<E>
      • removeFirst

        public E removeFirst()
        Specified by:
        removeFirst in interface java.util.Deque<E>
      • removeLast

        public E removeLast()
        Specified by:
        removeLast in interface java.util.Deque<E>
      • pollFirst

        public E pollFirst()
        Specified by:
        pollFirst in interface java.util.Deque<E>
      • pollLast

        public E pollLast()
        Specified by:
        pollLast in interface java.util.Deque<E>
      • getFirst

        public E getFirst()
        Specified by:
        getFirst in interface java.util.Deque<E>
      • getLast

        public E getLast()
        Specified by:
        getLast in interface java.util.Deque<E>
      • peekFirst

        public E peekFirst()
        Specified by:
        peekFirst in interface java.util.Deque<E>
      • peekLast

        public E peekLast()
        Specified by:
        peekLast in interface java.util.Deque<E>
      • removeFirstOccurrence

        public boolean removeFirstOccurrence​(java.lang.Object o)
        Specified by:
        removeFirstOccurrence in interface java.util.Deque<E>
      • removeLastOccurrence

        public boolean removeLastOccurrence​(java.lang.Object o)
        Specified by:
        removeLastOccurrence in interface java.util.Deque<E>
      • push

        public void push​(E e)
        Specified by:
        push in interface java.util.Deque<E>
      • pop

        public E pop()
        Specified by:
        pop in interface java.util.Deque<E>
      • descendingIterator

        public java.util.Iterator<E> descendingIterator()
        Specified by:
        descendingIterator in interface java.util.Deque<E>