27 |
|
* <p>The twelve methods described above are summarized in the |
28 |
|
* following table: |
29 |
|
* |
30 |
< |
* <table class="plain"> |
30 |
> |
* <table class="striped"> |
31 |
|
* <caption>Summary of Deque methods</caption> |
32 |
+ |
* <thead> |
33 |
|
* <tr> |
34 |
< |
* <td></td> |
35 |
< |
* <td style="text-align:center" COLSPAN = 2> <b>First Element (Head)</b></td> |
36 |
< |
* <td style="text-align:center" COLSPAN = 2> <b>Last Element (Tail)</b></td> |
34 |
> |
* <td rowspan="2"></td> |
35 |
> |
* <th scope="col" colspan="2"> First Element (Head)</th> |
36 |
> |
* <th scope="col" colspan="2"> Last Element (Tail)</th> |
37 |
|
* </tr> |
38 |
|
* <tr> |
39 |
< |
* <td></td> |
40 |
< |
* <td style="text-align:center"><em>Throws exception</em></td> |
41 |
< |
* <td style="text-align:center"><em>Special value</em></td> |
42 |
< |
* <td style="text-align:center"><em>Throws exception</em></td> |
42 |
< |
* <td style="text-align:center"><em>Special value</em></td> |
39 |
> |
* <th scope="col" style="font-weight:normal; font-style:italic">Throws exception</th> |
40 |
> |
* <th scope="col" style="font-weight:normal; font-style:italic">Special value</th> |
41 |
> |
* <th scope="col" style="font-weight:normal; font-style:italic">Throws exception</th> |
42 |
> |
* <th scope="col" style="font-weight:normal; font-style:italic">Special value</th> |
43 |
|
* </tr> |
44 |
+ |
* </thead> |
45 |
+ |
* <tbody> |
46 |
|
* <tr> |
47 |
< |
* <td><b>Insert</b></td> |
47 |
> |
* <th scope="row">Insert</th> |
48 |
|
* <td>{@link #addFirst(Object) addFirst(e)}</td> |
49 |
|
* <td>{@link #offerFirst(Object) offerFirst(e)}</td> |
50 |
|
* <td>{@link #addLast(Object) addLast(e)}</td> |
51 |
|
* <td>{@link #offerLast(Object) offerLast(e)}</td> |
52 |
|
* </tr> |
53 |
|
* <tr> |
54 |
< |
* <td><b>Remove</b></td> |
54 |
> |
* <th scope="row">Remove</th> |
55 |
|
* <td>{@link #removeFirst() removeFirst()}</td> |
56 |
|
* <td>{@link #pollFirst() pollFirst()}</td> |
57 |
|
* <td>{@link #removeLast() removeLast()}</td> |
58 |
|
* <td>{@link #pollLast() pollLast()}</td> |
59 |
|
* </tr> |
60 |
|
* <tr> |
61 |
< |
* <td><b>Examine</b></td> |
61 |
> |
* <th scope="row">Examine</th> |
62 |
|
* <td>{@link #getFirst() getFirst()}</td> |
63 |
|
* <td>{@link #peekFirst() peekFirst()}</td> |
64 |
|
* <td>{@link #getLast() getLast()}</td> |
65 |
|
* <td>{@link #peekLast() peekLast()}</td> |
66 |
|
* </tr> |
67 |
+ |
* </tbody> |
68 |
|
* </table> |
69 |
|
* |
70 |
|
* <p>This interface extends the {@link Queue} interface. When a deque is |
73 |
|
* inherited from the {@code Queue} interface are precisely equivalent to |
74 |
|
* {@code Deque} methods as indicated in the following table: |
75 |
|
* |
76 |
< |
* <table class="plain"> |
76 |
> |
* <table class="striped"> |
77 |
|
* <caption>Comparison of Queue and Deque methods</caption> |
78 |
+ |
* <thead> |
79 |
|
* <tr> |
80 |
< |
* <td style="text-align:center"> <b>{@code Queue} Method</b></td> |
81 |
< |
* <td style="text-align:center"> <b>Equivalent {@code Deque} Method</b></td> |
80 |
> |
* <th scope="col"> {@code Queue} Method</th> |
81 |
> |
* <th scope="col"> Equivalent {@code Deque} Method</th> |
82 |
|
* </tr> |
83 |
+ |
* </thead> |
84 |
+ |
* <tbody> |
85 |
|
* <tr> |
86 |
< |
* <td>{@link #add(Object) add(e)}</td> |
86 |
> |
* <th scope="row">{@link #add(Object) add(e)}</th> |
87 |
|
* <td>{@link #addLast(Object) addLast(e)}</td> |
88 |
|
* </tr> |
89 |
|
* <tr> |
90 |
< |
* <td>{@link #offer(Object) offer(e)}</td> |
90 |
> |
* <th scope="row">{@link #offer(Object) offer(e)}</th> |
91 |
|
* <td>{@link #offerLast(Object) offerLast(e)}</td> |
92 |
|
* </tr> |
93 |
|
* <tr> |
94 |
< |
* <td>{@link #remove() remove()}</td> |
94 |
> |
* <th scope="row">{@link #remove() remove()}</th> |
95 |
|
* <td>{@link #removeFirst() removeFirst()}</td> |
96 |
|
* </tr> |
97 |
|
* <tr> |
98 |
< |
* <td>{@link #poll() poll()}</td> |
98 |
> |
* <th scope="row">{@link #poll() poll()}</th> |
99 |
|
* <td>{@link #pollFirst() pollFirst()}</td> |
100 |
|
* </tr> |
101 |
|
* <tr> |
102 |
< |
* <td>{@link #element() element()}</td> |
102 |
> |
* <th scope="row">{@link #element() element()}</th> |
103 |
|
* <td>{@link #getFirst() getFirst()}</td> |
104 |
|
* </tr> |
105 |
|
* <tr> |
106 |
< |
* <td>{@link #peek() peek()}</td> |
106 |
> |
* <th scope="row">{@link #peek() peek()}</th> |
107 |
|
* <td>{@link #peekFirst() peekFirst()}</td> |
108 |
|
* </tr> |
109 |
+ |
* </tbody> |
110 |
|
* </table> |
111 |
|
* |
112 |
|
* <p>Deques can also be used as LIFO (Last-In-First-Out) stacks. This |
115 |
|
* beginning of the deque. Stack methods are precisely equivalent to |
116 |
|
* {@code Deque} methods as indicated in the table below: |
117 |
|
* |
118 |
< |
* <table class="plain"> |
118 |
> |
* <table class="striped"> |
119 |
|
* <caption>Comparison of Stack and Deque methods</caption> |
120 |
+ |
* <thead> |
121 |
|
* <tr> |
122 |
< |
* <td style="text-align:center"> <b>Stack Method</b></td> |
123 |
< |
* <td style="text-align:center"> <b>Equivalent {@code Deque} Method</b></td> |
122 |
> |
* <th scope="col"> Stack Method</th> |
123 |
> |
* <th scope="col"> Equivalent {@code Deque} Method</th> |
124 |
|
* </tr> |
125 |
+ |
* </thead> |
126 |
+ |
* <tbody> |
127 |
|
* <tr> |
128 |
< |
* <td>{@link #push(Object) push(e)}</td> |
128 |
> |
* <th scope="row">{@link #push(Object) push(e)}</th> |
129 |
|
* <td>{@link #addFirst(Object) addFirst(e)}</td> |
130 |
|
* </tr> |
131 |
|
* <tr> |
132 |
< |
* <td>{@link #pop() pop()}</td> |
132 |
> |
* <th scope="row">{@link #pop() pop()}</th> |
133 |
|
* <td>{@link #removeFirst() removeFirst()}</td> |
134 |
|
* </tr> |
135 |
|
* <tr> |
136 |
< |
* <td>{@link #peek() peek()}</td> |
136 |
> |
* <th scope="row">{@link #peek() peek()}</th> |
137 |
|
* <td>{@link #peekFirst() peekFirst()}</td> |
138 |
|
* </tr> |
139 |
+ |
* </tbody> |
140 |
|
* </table> |
141 |
|
* |
142 |
|
* <p>Note that the {@link #peek peek} method works equally well when |