--- jsr166/src/main/java/util/ArrayDeque.java 2005/09/15 16:55:24 1.17 +++ jsr166/src/main/java/util/ArrayDeque.java 2005/09/16 11:15:41 1.19 @@ -538,20 +538,12 @@ public class ArrayDeque extends Abstr * order that elements would be dequeued (via successive calls to * {@link #remove} or popped (via successive calls to {@link #pop}). * - * @return an Iterator over the elements in this deque + * @return an iterator over the elements in this deque */ public Iterator iterator() { return new DeqIterator(); } - /** - * 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 - */ public Iterator descendingIterator() { return new DescendingIterator(); } @@ -603,7 +595,7 @@ public class ArrayDeque extends Abstr private class DescendingIterator implements Iterator { - /* + /* * This class is nearly a mirror-image of DeqIterator, using * (tail-1) instead of head for initial cursor, (head-1) * instead of tail for fence, and elements.length instead of -1 @@ -622,7 +614,7 @@ public class ArrayDeque extends Abstr E result; if (cursor == fence) throw new NoSuchElementException(); - if (((head - 1) & (elements.length - 1)) != fence || + if (((head - 1) & (elements.length - 1)) != fence || (result = elements[cursor]) == null) throw new ConcurrentModificationException(); lastRet = cursor; @@ -633,7 +625,7 @@ public class ArrayDeque extends Abstr public void remove() { if (lastRet >= elements.length) throw new IllegalStateException(); - if (!delete(lastRet)) + if (!delete(lastRet)) cursor = (cursor + 1) & (elements.length - 1); lastRet = elements.length; fence = (head - 1) & (elements.length - 1); @@ -798,16 +790,12 @@ public class ArrayDeque extends Abstr s.defaultWriteObject(); // Write out size - int size = size(); - s.writeInt(size); + s.writeInt(size()); // Write out elements in order. - int i = head; int mask = elements.length - 1; - for (int j = 0; j < size; j++) { + for (int i = head; i != tail; i = (i + 1) & mask) s.writeObject(elements[i]); - i = (i + 1) & mask; - } } /**