--- jsr166/src/main/java/util/Deque.java 2017/05/31 19:02:33 1.39 +++ jsr166/src/main/java/util/Deque.java 2017/08/23 20:17:53 1.40 @@ -27,41 +27,44 @@ package java.util; *

The twelve methods described above are summarized in the * following table: * - * + *
* + * * - * - * - * + * + * + * * * - * - * - * - * - * + * + * + * + * * + * + * * - * + * * * * * * * - * + * * * * * * * - * + * * * * * * + * *
Summary of Deque methods
First Element (Head) Last Element (Tail) First Element (Head) Last Element (Tail)
Throws exceptionSpecial valueThrows exceptionSpecial valueThrows exceptionSpecial valueThrows exceptionSpecial value
InsertInsert{@link #addFirst(Object) addFirst(e)}{@link #offerFirst(Object) offerFirst(e)}{@link #addLast(Object) addLast(e)}{@link #offerLast(Object) offerLast(e)}
RemoveRemove{@link #removeFirst() removeFirst()}{@link #pollFirst() pollFirst()}{@link #removeLast() removeLast()}{@link #pollLast() pollLast()}
ExamineExamine{@link #getFirst() getFirst()}{@link #peekFirst() peekFirst()}{@link #getLast() getLast()}{@link #peekLast() peekLast()}
* *

This interface extends the {@link Queue} interface. When a deque is @@ -70,36 +73,40 @@ package java.util; * inherited from the {@code Queue} interface are precisely equivalent to * {@code Deque} methods as indicated in the following table: * - * + *
* + * * - * - * + * + * * + * + * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * * - * + * * * + * *
Comparison of Queue and Deque methods
{@code Queue} Method Equivalent {@code Deque} Method {@code Queue} Method Equivalent {@code Deque} Method
{@link #add(Object) add(e)}{@link #add(Object) add(e)}{@link #addLast(Object) addLast(e)}
{@link #offer(Object) offer(e)}{@link #offer(Object) offer(e)}{@link #offerLast(Object) offerLast(e)}
{@link #remove() remove()}{@link #remove() remove()}{@link #removeFirst() removeFirst()}
{@link #poll() poll()}{@link #poll() poll()}{@link #pollFirst() pollFirst()}
{@link #element() element()}{@link #element() element()}{@link #getFirst() getFirst()}
{@link #peek() peek()}{@link #peek() peek()}{@link #peekFirst() peekFirst()}
* *

Deques can also be used as LIFO (Last-In-First-Out) stacks. This @@ -108,24 +115,28 @@ package java.util; * beginning of the deque. Stack methods are precisely equivalent to * {@code Deque} methods as indicated in the table below: * - * + *
* + * * - * - * + * + * * + * + * * - * + * * * * - * + * * * * - * + * * * + * *
Comparison of Stack and Deque methods
Stack Method Equivalent {@code Deque} Method Stack Method Equivalent {@code Deque} Method
{@link #push(Object) push(e)}{@link #push(Object) push(e)}{@link #addFirst(Object) addFirst(e)}
{@link #pop() pop()}{@link #pop() pop()}{@link #removeFirst() removeFirst()}
{@link #peek() peek()}{@link #peek() peek()}{@link #peekFirst() peekFirst()}
* *

Note that the {@link #peek peek} method works equally well when