--- jsr166/src/main/java/util/Deque.java 2005/06/18 01:56:01 1.14 +++ jsr166/src/main/java/util/Deque.java 2012/10/21 06:40:20 1.21 @@ -1,11 +1,10 @@ /* * Written by Doug Lea and Josh Bloch with assistance from members of * JCP JSR-166 Expert Group and released to the public domain, as explained - * at http://creativecommons.org/licenses/publicdomain + * at http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util; -import java.util.*; // for javadoc /** * A linear collection that supports element insertion and removal at @@ -154,7 +153,7 @@ import java.util.*; // for javadoc * Object. * *

This interface is a member of the Java Collections + * href="{@docRoot}/../technotes/guides/collections/index.html"> Java Collections * Framework. * * @author Doug Lea @@ -162,7 +161,6 @@ import java.util.*; // for javadoc * @since 1.6 * @param the type of elements held in this collection */ - public interface Deque extends Queue { /** * Inserts the specified element at the front of this deque if it is @@ -240,8 +238,8 @@ public interface Deque extends Queue< /** * Retrieves and removes the first element of this deque. This method - * differs from {@link #pollFirst} only in that it throws an exception - * if this deque is empty. + * differs from {@link #pollFirst pollFirst} only in that it throws an + * exception if this deque is empty. * * @return the head of this deque * @throws NoSuchElementException if this deque is empty @@ -250,8 +248,8 @@ public interface Deque extends Queue< /** * Retrieves and removes the last element of this deque. This method - * differs from {@link #pollLast} only in that it throws an exception if - * this deque is empty. + * differs from {@link #pollLast pollLast} only in that it throws an + * exception if this deque is empty. * * @return the tail of this deque * @throws NoSuchElementException if this deque is empty @@ -276,8 +274,9 @@ public interface Deque extends Queue< /** * Retrieves, but does not remove, the first element of this deque. - * This method differs from {@link #peekFirst} only in that it throws an - * exception if this deque is empty. + * + * This method differs from {@link #peekFirst peekFirst} only in that it + * throws an exception if this deque is empty. * * @return the head of this deque * @throws NoSuchElementException if this deque is empty @@ -286,8 +285,8 @@ public interface Deque extends Queue< /** * Retrieves, but does not remove, the last element of this deque. - * This method differs from {@link #peekLast} only in that it throws an - * exception if this deque is empty. + * This method differs from {@link #peekLast peekLast} only in that it + * throws an exception if this deque is empty. * * @return the tail of this deque * @throws NoSuchElementException if this deque is empty @@ -360,7 +359,7 @@ public interface Deque extends Queue< *

This method is equivalent to {@link #addLast}. * * @param e the element to add - * @return true (as per the spec for {@link Collection#add}) + * @return true (as specified by {@link Collection#add}) * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element @@ -398,7 +397,7 @@ public interface Deque extends Queue< /** * Retrieves and removes the head of the queue represented by this deque * (in other words, the first element of this deque). - * This method differs from {@link #poll} only in that it throws an + * This method differs from {@link #poll poll} only in that it throws an * exception if this deque is empty. * *

This method is equivalent to {@link #removeFirst()}. @@ -423,7 +422,7 @@ public interface Deque extends Queue< /** * Retrieves, but does not remove, the head of the queue represented by * this deque (in other words, the first element of this deque). - * This method differs from {@link #peek} only in that it throws an + * This method differs from {@link #peek peek} only in that it throws an * exception if this deque is empty. * *

This method is equivalent to {@link #getFirst()}. @@ -533,4 +532,15 @@ public interface Deque extends Queue< * @return an iterator over the elements in this deque in proper sequence */ Iterator iterator(); + + /** + * Returns an iterator over the elements in this deque in reverse + * sequential order. The elements will be returned in order from + * last (tail) to first (head). + * + * @return an iterator over the elements in this deque in reverse + * sequence + */ + Iterator descendingIterator(); + }