E - the type of elements held in this collectioninterface Deque<E>
extends java.util.Queue<E>
Deque
implementations place no fixed limits on the number of elements
they may contain, but this interface supports capacity-restricted
deques as well as those with no fixed size limit.
This interface defines methods to access the elements at both
ends of the deque. Methods are provided to insert, remove, and
examine the element. Each of these methods exists in two forms:
one throws an exception if the operation fails, the other returns a
special value (either null or false, depending on
the operation). The latter form of the insert operation is
designed specifically for use with capacity-restricted
Deque implementations; in most implementations, insert
operations cannot fail.
The twelve methods described above are summarized in the following table:
| First Element (Head) | Last Element (Tail) | |||
| Throws exception | Returns special value | Throws exception | Returns special value | |
| Insert | addFirst(e) |
offerFirst(e) |
addLast(e) |
offerLast(e) |
| Remove | removeFirst() |
pollFirst() |
removeLast() |
pollLast() |
| Examine | getFirst() |
peekFirst() |
getLast() |
peekLast() |
This interface extends the Queue interface. When a deque is
used as a queue, FIFO (First-In-First-Out) behavior results. Elements are
added to the end of the deque and removed from the beginning. The methods
inherited from the Queue interface are precisely equivalent to
Deque methods as indicated in the following table:
Queue Method |
Equivalent Deque Method |
offer(e) |
offerLast(e) |
add(e) |
addLast(e) |
poll() |
pollFirst() |
remove() |
removeFirst() |
peek() |
peekFirst() |
element() |
getFirst() |
Deques can also be used as LIFO (Last-In-First-Out) stacks. This
interface should be used in preference to the legacy Stack class.
When a dequeue is used as a stack, elements are pushed and popped from the
beginning of the deque. Stack methods are precisely equivalent to
Deque methods as indicated in the table below:
| Stack Method | Equivalent Deque Method |
push(e) |
addFirst(e) |
pop() |
removeFirst() |
peek() |
peekFirst() |
Note that the peek method works equally well when
a deque is used as a queue or a stack; in either case, elements are
drawn from the beginning of the deque.
This interface provides two methods to remove interior
elements, removeFirstOccurrence and
removeLastOccurrence. Unlike the
List interface, this interface does not provide support for
indexed access to elements.
While Deque implementations are not strictly required
to prohibit the insertion of null elements, they are strongly
encouraged to do so. Users of any Deque implementations
that do allow null elements are strongly encouraged not to
take advantage of the ability to insert nulls. This is so because
null is used as a special return value by various methods
to indicated that the deque is empty.
Deque implementations generally do not define
element-based versions of the equals and hashCode
methods, but instead inherit the identity-based versions from class
Object.
This interface is a member of the Java Collections Framework.
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(E e)
Inserts the specified element into the queue represented by this
deque unless it would violate capacity restrictions.
|
void |
addFirst(E e)
Inserts the specified element to the front of this deque unless it
would violate capacity restrictions.
|
void |
addLast(E e)
Inserts the specified element to the end of this deque unless it would
violate capacity restrictions.
|
E |
element()
Retrieves, but does not remove, the head of the queue represented by
this deque.
|
E |
getFirst()
Retrieves, but does not remove, the first element of this
deque.
|
E |
getLast()
Retrieves, but does not remove, the last element of this
deque.
|
java.util.Iterator<E> |
iterator()
Returns an iterator over the elements in this deque.
|
boolean |
offer(E e)
Inserts the specified element into the queue represented by this deque
unless it would violate capacity restrictions.
|
boolean |
offerFirst(E e)
Inserts the specified element to the front this deque unless it would
violate capacity restrictions.
|
boolean |
offerLast(E e)
Inserts the specified element to the end of this deque unless it would
violate capacity restrictions.
|
E |
peek()
Retrieves, but does not remove, the head of the queue represented by
this deque, returning
null if this deque is empty. |
E |
peekFirst()
Retrieves, but does not remove, the first element of this deque,
returning
null if this deque is empty. |
E |
peekLast()
Retrieves, but does not remove, the last element of this deque,
returning
null if this deque is empty. |
E |
poll()
Retrieves and removes the head of the queue represented by
this deque, or
null if this deque is empty. |
E |
pollFirst()
Retrieves and removes the first element of this deque, or
null if this deque is empty. |
E |
pollLast()
Retrieves and removes the last element of this deque, or
null if this deque is empty. |
E |
pop()
Pops an element from the stack represented by this deque.
|
void |
push(E e)
Pushes an element onto the stack represented by this deque.
|
E |
remove()
Retrieves and removes the head of the queue represented by this deque.
|
E |
removeFirst()
Removes and returns the first element of this deque.
|
boolean |
removeFirstOccurrence(java.lang.Object e)
Removes the first occurrence of the specified element in this
deque.
|
E |
removeLast()
Retrieves and removes the last element of this deque.
|
boolean |
removeLastOccurrence(java.lang.Object e)
Removes the last occurrence of the specified element in this
deque.
|
boolean offerFirst(E e)
addFirst, which
can fail to insert an element only by throwing an exception.e - the element to inserttrue if it was possible to insert the element,
else falsejava.lang.NullPointerException - if e is null and this
deque does not permit null elementsboolean offerLast(E e)
addLast which
can fail to insert an element only by throwing an exception.e - the element to inserttrue if it was possible to insert the element,
else falsejava.lang.NullPointerException - if e is null and this
deque does not permit null elementsvoid addFirst(E e)
e - the element to insertjava.lang.IllegalStateException - if it was not possible to insert
the element due to capacity restrictionsjava.lang.NullPointerException - if e is null and this
deque does not permit null elementsvoid addLast(E e)
e - the element to insertjava.lang.IllegalStateException - if it was not possible to insert
the element due to capacity restrictionsjava.lang.NullPointerException - if e is null and this
deque does not permit null elementsE pollFirst()
null if this deque is empty.null if
this deque is emptyE pollLast()
null if this deque is empty.null if
this deque is emptyE removeFirst()
pollFirst method only in that it throws an
exception if this deque is empty.java.util.NoSuchElementException - if this deque is emptyE removeLast()
pollLast method only in that it throws an
exception if this deque is empty.java.util.NoSuchElementException - if this deque is emptyE peekFirst()
null if this deque is empty.null if
this deque is emptyE peekLast()
null if this deque is empty.null if this deque
is emptyE getFirst()
peek method only
in that it throws an exception if this deque is empty.java.util.NoSuchElementException - if this deque is emptyE getLast()
peek method only
in that it throws an exception if this deque is empty.java.util.NoSuchElementException - if this deque is emptyboolean removeFirstOccurrence(java.lang.Object e)
e
such that (o==null ? e==null : o.equals(e)) (if
such an element exists).e - element to be removed from this deque, if presenttrue if the deque contained the specified elementjava.lang.NullPointerException - if the specified element is nullboolean removeLastOccurrence(java.lang.Object e)
e
such that (o==null ? e==null : o.equals(e)) (if
such an element exists).e - element to be removed from this deque, if presenttrue if the deque contained the specified elementjava.lang.NullPointerException - if the specified element is nullboolean offer(E e)
add(E) method, which can fail to insert an element only by
throwing an exception.
This method is equivalent to offerLast(E).
offer in interface java.util.Queue<E>e - the element to inserttrue if it was possible to insert the element,
else falsejava.lang.NullPointerException - if e is null and this
deque does not permit null elementsboolean add(E e)
This method is equivalent to addLast(E).
add in interface java.util.Collection<E>add in interface java.util.Queue<E>e - the element to inserttrue (as per the spec for Collection.add(E))java.lang.IllegalStateException - if it was not possible to insert
the element due to capacity restrictionsjava.lang.NullPointerException - if e is null and this
deque does not permit null elementsE poll()
null if this deque is empty. In other words,
retrieves and removes the first element of this deque, or null
if this deque is empty.
This method is equivalent to pollFirst().
poll in interface java.util.Queue<E>null if
this deque is emptyE remove()
poll method only in that it
throws an exception if this deque is empty.
This method is equivalent to removeFirst().
remove in interface java.util.Queue<E>java.util.NoSuchElementException - if this deque is emptyE peek()
null if this deque is empty.
This method is equivalent to peekFirst().
peek in interface java.util.Queue<E>null if this deque is emptyE element()
peek method only in
that it throws an exception if this deque is empty.
This method is equivalent to getFirst().
element in interface java.util.Queue<E>java.util.NoSuchElementException - if this deque is emptyvoid push(E e)
This method is equivalent to addFirst(E).
java.lang.IllegalStateException - if it was not possible to insert
the element due to capacity restrictionsjava.lang.NullPointerException - if e is null and this
deque does not permit null elementsE pop()
This method is equivalent to removeFirst().
java.util.NoSuchElementException - if this deque is emptyjava.util.Iterator<E> iterator()