ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/ArrayDeque.java
(Generate patch)

Comparing jsr166/src/main/java/util/ArrayDeque.java (file contents):
Revision 1.108 by jsr166, Sat Nov 5 14:41:14 2016 UTC vs.
Revision 1.111 by jsr166, Sun Nov 6 22:15:01 2016 UTC

# Line 244 | Line 244 | public class ArrayDeque<E> extends Abstr
244      }
245  
246      /**
247     * Returns the array index of the last element.
248     * May return invalid index -1 if there are no elements.
249     */
250    final int last() {
251        return dec(tail, elements.length);
252    }
253
254    /**
247       * Returns element at array index i.
248       * This is a slight abuse of generics, accepted by javac.
249       */
# Line 325 | Line 317 | public class ArrayDeque<E> extends Abstr
317          final int s = size(), needed;
318          if ((needed = s + c.size() - elements.length + 1) > 0)
319              grow(needed);
320 <        c.forEach((e) -> addLast(e));
320 >        c.forEach(e -> addLast(e));
321          // checkInvariants();
322          return size() > s;
323      }
# Line 477 | Line 469 | public class ArrayDeque<E> extends Abstr
469              final Object[] es = elements;
470              for (int i = tail, end = head, to = (i >= end) ? end : 0;
471                   ; i = es.length, to = end) {
472 <                while (--i >= to)
472 >                for (i--; i > to - 1; i--)
473                      if (o.equals(es[i])) {
474                          delete(i);
475                          return true;
# Line 752 | Line 744 | public class ArrayDeque<E> extends Abstr
744      }
745  
746      private class DescendingIterator extends DeqIterator {
747 <        DescendingIterator() { cursor = last(); }
747 >        DescendingIterator() { cursor = dec(tail, elements.length); }
748  
749          public final E next() {
750              if (remaining <= 0)
# Line 781 | Line 773 | public class ArrayDeque<E> extends Abstr
773                  throw new ConcurrentModificationException();
774              for (int i = cursor, end = head, to = (i >= end) ? end : 0;
775                   ; i = es.length - 1, to = end) {
776 <                for (; i >= to; i--)
776 >                // hotspot generates faster code than for: i >= to !
777 >                for (; i > to - 1; i--)
778                      action.accept(elementAt(es, i));
779                  if (to == end) {
780                      if (end != head)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines