[cvs] / jsr166 / src / main / java / util / Deque.java Repository:
ViewVC logotype

Diff of /jsr166/src/main/java/util/Deque.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.22, Wed Jan 16 01:59:47 2013 UTC revision 1.30, Tue Dec 2 05:48:28 2014 UTC
# Line 27  Line 27 
27   * <p>The twelve methods described above are summarized in the   * <p>The twelve methods described above are summarized in the
28   * following table:   * following table:
29   *   *
  * <p>  
30   * <table BORDER CELLPADDING=3 CELLSPACING=1>   * <table BORDER CELLPADDING=3 CELLSPACING=1>
31     * <caption>Summary of Deque methods</caption>
32   *  <tr>   *  <tr>
33   *    <td></td>   *    <td></td>
34   *    <td ALIGN=CENTER COLSPAN = 2> <b>First Element (Head)</b></td>   *    <td ALIGN=CENTER COLSPAN = 2> <b>First Element (Head)</b></td>
# Line 43  Line 43 
43   *  </tr>   *  </tr>
44   *  <tr>   *  <tr>
45   *    <td><b>Insert</b></td>   *    <td><b>Insert</b></td>
46   *    <td>{@link #addFirst addFirst(e)}</td>   *    <td>{@link Deque#addFirst addFirst(e)}</td>
47   *    <td>{@link #offerFirst offerFirst(e)}</td>   *    <td>{@link Deque#offerFirst offerFirst(e)}</td>
48   *    <td>{@link #addLast addLast(e)}</td>   *    <td>{@link Deque#addLast addLast(e)}</td>
49   *    <td>{@link #offerLast offerLast(e)}</td>   *    <td>{@link Deque#offerLast offerLast(e)}</td>
50   *  </tr>   *  </tr>
51   *  <tr>   *  <tr>
52   *    <td><b>Remove</b></td>   *    <td><b>Remove</b></td>
53   *    <td>{@link #removeFirst removeFirst()}</td>   *    <td>{@link Deque#removeFirst removeFirst()}</td>
54   *    <td>{@link #pollFirst pollFirst()}</td>   *    <td>{@link Deque#pollFirst pollFirst()}</td>
55   *    <td>{@link #removeLast removeLast()}</td>   *    <td>{@link Deque#removeLast removeLast()}</td>
56   *    <td>{@link #pollLast pollLast()}</td>   *    <td>{@link Deque#pollLast pollLast()}</td>
57   *  </tr>   *  </tr>
58   *  <tr>   *  <tr>
59   *    <td><b>Examine</b></td>   *    <td><b>Examine</b></td>
60   *    <td>{@link #getFirst getFirst()}</td>   *    <td>{@link Deque#getFirst getFirst()}</td>
61   *    <td>{@link #peekFirst peekFirst()}</td>   *    <td>{@link Deque#peekFirst peekFirst()}</td>
62   *    <td>{@link #getLast getLast()}</td>   *    <td>{@link Deque#getLast getLast()}</td>
63   *    <td>{@link #peekLast peekLast()}</td>   *    <td>{@link Deque#peekLast peekLast()}</td>
64   *  </tr>   *  </tr>
65   * </table>   * </table>
66   *   *
# Line 70  Line 70 
70   * inherited from the {@code Queue} interface are precisely equivalent to   * inherited from the {@code Queue} interface are precisely equivalent to
71   * {@code Deque} methods as indicated in the following table:   * {@code Deque} methods as indicated in the following table:
72   *   *
  * <p>  
73   * <table BORDER CELLPADDING=3 CELLSPACING=1>   * <table BORDER CELLPADDING=3 CELLSPACING=1>
74     * <caption>Comparison of Queue and Deque methods</caption>
75   *  <tr>   *  <tr>
76   *    <td ALIGN=CENTER> <b>{@code Queue} Method</b></td>   *    <td ALIGN=CENTER> <b>{@code Queue} Method</b></td>
77   *    <td ALIGN=CENTER> <b>Equivalent {@code Deque} Method</b></td>   *    <td ALIGN=CENTER> <b>Equivalent {@code Deque} Method</b></td>
# Line 108  Line 108 
108   * beginning of the deque.  Stack methods are precisely equivalent to   * beginning of the deque.  Stack methods are precisely equivalent to
109   * {@code Deque} methods as indicated in the table below:   * {@code Deque} methods as indicated in the table below:
110   *   *
  * <p>  
111   * <table BORDER CELLPADDING=3 CELLSPACING=1>   * <table BORDER CELLPADDING=3 CELLSPACING=1>
112     * <caption>Comparison of Stack and Deque methods</caption>
113   *  <tr>   *  <tr>
114   *    <td ALIGN=CENTER> <b>Stack Method</b></td>   *    <td ALIGN=CENTER> <b>Stack Method</b></td>
115   *    <td ALIGN=CENTER> <b>Equivalent {@code Deque} Method</b></td>   *    <td ALIGN=CENTER> <b>Equivalent {@code Deque} Method</b></td>
# Line 159  Line 159 
159   * @author Doug Lea   * @author Doug Lea
160   * @author Josh Bloch   * @author Josh Bloch
161   * @since  1.6   * @since  1.6
162   * @param <E> the type of elements held in this collection   * @param <E> the type of elements held in this deque
163   */   */
164  public interface Deque<E> extends Queue<E> {  public interface Deque<E> extends Queue<E> {
165      /**      /**
166       * Inserts the specified element at the front of this deque if it is       * Inserts the specified element at the front of this deque if it is
167       * possible to do so immediately without violating capacity restrictions.       * possible to do so immediately without violating capacity restrictions,
168       * When using a capacity-restricted deque, it is generally preferable to       * throwing an {@code IllegalStateException} if no space is currently
169       * use method {@link #offerFirst}.       * available.  When using a capacity-restricted deque, it is generally
170         * preferable to use method {@link #offerFirst}.
171       *       *
172       * @param e the element to add       * @param e the element to add
173       * @throws IllegalStateException if the element cannot be added at this       * @throws IllegalStateException if the element cannot be added at this
# Line 182  Line 183 
183    
184      /**      /**
185       * Inserts the specified element at the end of this deque if it is       * Inserts the specified element at the end of this deque if it is
186       * possible to do so immediately without violating capacity restrictions.       * possible to do so immediately without violating capacity restrictions,
187       * When using a capacity-restricted deque, it is generally preferable to       * throwing an {@code IllegalStateException} if no space is currently
188       * use method {@link #offerLast}.       * available.  When using a capacity-restricted deque, it is generally
189         * preferable to use method {@link #offerLast}.
190       *       *
191       * <p>This method is equivalent to {@link #add}.       * <p>This method is equivalent to {@link #add}.
192       *       *
# Line 313  Line 315 
315       * Removes the first occurrence of the specified element from this deque.       * Removes the first occurrence of the specified element from this deque.
316       * If the deque does not contain the element, it is unchanged.       * If the deque does not contain the element, it is unchanged.
317       * More formally, removes the first element {@code e} such that       * More formally, removes the first element {@code e} such that
318       * <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt>       * {@code Objects.equals(o, e)} (if such an element exists).
      * (if such an element exists).  
319       * Returns {@code true} if this deque contained the specified element       * Returns {@code true} if this deque contained the specified element
320       * (or equivalently, if this deque changed as a result of the call).       * (or equivalently, if this deque changed as a result of the call).
321       *       *
322       * @param o element to be removed from this deque, if present       * @param o element to be removed from this deque, if present
323       * @return {@code true} if an element was removed as a result of this call       * @return {@code true} if an element was removed as a result of this call
324       * @throws ClassCastException if the class of the specified element       * @throws ClassCastException if the class of the specified element
325       *         is incompatible with this deque (optional)       *         is incompatible with this deque
326       * @throws NullPointerException if the specified element is null and this       *         (<a href="../Collection.html#optional-restrictions">optional</a>)
327       *         deque does not permit null elements (optional)       * @throws NullPointerException if the specified element is null
328         *         (<a href="../Collection.html#optional-restrictions">optional</a>)
329       */       */
330      boolean removeFirstOccurrence(Object o);      boolean removeFirstOccurrence(Object o);
331    
# Line 331  Line 333 
333       * Removes the last occurrence of the specified element from this deque.       * Removes the last occurrence of the specified element from this deque.
334       * If the deque does not contain the element, it is unchanged.       * If the deque does not contain the element, it is unchanged.
335       * More formally, removes the last element {@code e} such that       * More formally, removes the last element {@code e} such that
336       * <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt>       * {@code Objects.equals(o, e)} (if such an element exists).
      * (if such an element exists).  
337       * Returns {@code true} if this deque contained the specified element       * Returns {@code true} if this deque contained the specified element
338       * (or equivalently, if this deque changed as a result of the call).       * (or equivalently, if this deque changed as a result of the call).
339       *       *
340       * @param o element to be removed from this deque, if present       * @param o element to be removed from this deque, if present
341       * @return {@code true} if an element was removed as a result of this call       * @return {@code true} if an element was removed as a result of this call
342       * @throws ClassCastException if the class of the specified element       * @throws ClassCastException if the class of the specified element
343       *         is incompatible with this deque (optional)       *         is incompatible with this deque
344       * @throws NullPointerException if the specified element is null and this       *         (<a href="../Collection.html#optional-restrictions">optional</a>)
345       *         deque does not permit null elements (optional)       * @throws NullPointerException if the specified element is null
346         *         (<a href="../Collection.html#optional-restrictions">optional</a>)
347       */       */
348      boolean removeLastOccurrence(Object o);      boolean removeLastOccurrence(Object o);
349    
# Line 450  Line 452 
452      /**      /**
453       * Pushes an element onto the stack represented by this deque (in other       * Pushes an element onto the stack represented by this deque (in other
454       * words, at the head of this deque) if it is possible to do so       * words, at the head of this deque) if it is possible to do so
455       * immediately without violating capacity restrictions, returning       * immediately without violating capacity restrictions, throwing an
      * {@code true} upon success and throwing an  
456       * {@code IllegalStateException} if no space is currently available.       * {@code IllegalStateException} if no space is currently available.
457       *       *
458       * <p>This method is equivalent to {@link #addFirst}.       * <p>This method is equivalent to {@link #addFirst}.
# Line 487  Line 488 
488       * Removes the first occurrence of the specified element from this deque.       * Removes the first occurrence of the specified element from this deque.
489       * If the deque does not contain the element, it is unchanged.       * If the deque does not contain the element, it is unchanged.
490       * More formally, removes the first element {@code e} such that       * More formally, removes the first element {@code e} such that
491       * <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt>       * {@code Objects.equals(o, e)} (if such an element exists).
      * (if such an element exists).  
492       * Returns {@code true} if this deque contained the specified element       * Returns {@code true} if this deque contained the specified element
493       * (or equivalently, if this deque changed as a result of the call).       * (or equivalently, if this deque changed as a result of the call).
494       *       *
495       * <p>This method is equivalent to {@link #removeFirstOccurrence}.       * <p>This method is equivalent to {@link #removeFirstOccurrence(Object)}.
496       *       *
497       * @param o element to be removed from this deque, if present       * @param o element to be removed from this deque, if present
498       * @return {@code true} if an element was removed as a result of this call       * @return {@code true} if an element was removed as a result of this call
499       * @throws ClassCastException if the class of the specified element       * @throws ClassCastException if the class of the specified element
500       *         is incompatible with this deque (optional)       *         is incompatible with this deque
501       * @throws NullPointerException if the specified element is null and this       *         (<a href="../Collection.html#optional-restrictions">optional</a>)
502       *         deque does not permit null elements (optional)       * @throws NullPointerException if the specified element is null
503         *         (<a href="../Collection.html#optional-restrictions">optional</a>)
504       */       */
505      boolean remove(Object o);      boolean remove(Object o);
506    
507      /**      /**
508       * Returns {@code true} if this deque contains the specified element.       * Returns {@code true} if this deque contains the specified element.
509       * More formally, returns {@code true} if and only if this deque contains       * More formally, returns {@code true} if and only if this deque contains
510       * at least one element {@code e} such that       * at least one element {@code e} such that {@code Objects.equals(o, e)}.
      * <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt>.  
511       *       *
512       * @param o element whose presence in this deque is to be tested       * @param o element whose presence in this deque is to be tested
513       * @return {@code true} if this deque contains the specified element       * @return {@code true} if this deque contains the specified element
514       * @throws ClassCastException if the type of the specified element       * @throws ClassCastException if the class of the specified element
515       *         is incompatible with this deque (optional)       *         is incompatible with this deque
516       * @throws NullPointerException if the specified element is null and this       *         (<a href="../Collection.html#optional-restrictions">optional</a>)
517       *         deque does not permit null elements (optional)       * @throws NullPointerException if the specified element is null
518         *         (<a href="../Collection.html#optional-restrictions">optional</a>)
519       */       */
520      boolean contains(Object o);      boolean contains(Object o);
521    

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.30

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8