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

Comparing jsr166/src/main/java/util/PriorityQueue.java (file contents):
Revision 1.122 by jsr166, Sun May 6 02:08:36 2018 UTC vs.
Revision 1.123 by jsr166, Sun May 6 16:26:03 2018 UTC

# Line 351 | Line 351 | public class PriorityQueue<E> extends Ab
351  
352      private int indexOf(Object o) {
353          if (o != null) {
354 <            for (int i = 0; i < size; i++)
355 <                if (o.equals(queue[i]))
354 >            final Object[] es = queue;
355 >            for (int i = 0, n = size; i < n; i++)
356 >                if (o.equals(es[i]))
357                      return i;
358          }
359          return -1;
# Line 380 | Line 381 | public class PriorityQueue<E> extends Ab
381      }
382  
383      /**
384 <     * Version of remove using reference equality, not equals.
384 <     * Needed by iterator.remove.
384 >     * Identity-based version for use in Itr.remove.
385       *
386       * @param o element to be removed from this queue, if present
387     * @return {@code true} if removed
387       */
388 <    boolean removeEq(Object o) {
389 <        for (int i = 0; i < size; i++) {
390 <            if (o == queue[i]) {
388 >    void removeEq(Object o) {
389 >        final Object[] es = queue;
390 >        for (int i = 0, n = size; i < n; i++) {
391 >            if (o == es[i]) {
392                  removeAt(i);
393 <                return true;
393 >                break;
394              }
395          }
396        return false;
396      }
397  
398      /**
# Line 578 | Line 577 | public class PriorityQueue<E> extends Ab
577       */
578      public void clear() {
579          modCount++;
580 <        for (int i = 0; i < size; i++)
581 <            queue[i] = null;
580 >        final Object[] es = queue;
581 >        for (int i = 0, n = size; i < n; i++)
582 >            es[i] = null;
583          size = 0;
584      }
585  
# Line 775 | Line 775 | public class PriorityQueue<E> extends Ab
775          s.writeInt(Math.max(2, size + 1));
776  
777          // Write out all elements in the "proper order".
778 <        for (int i = 0; i < size; i++)
779 <            s.writeObject(queue[i]);
778 >        final Object[] es = queue;
779 >        for (int i = 0, n = size; i < n; i++)
780 >            s.writeObject(es[i]);
781      }
782  
783      /**
# Line 800 | Line 801 | public class PriorityQueue<E> extends Ab
801          queue = new Object[size];
802  
803          // Read in all elements.
804 <        for (int i = 0; i < size; i++)
805 <            queue[i] = s.readObject();
804 >        final Object[] es = queue;
805 >        for (int i = 0, n = size; i < n; i++)
806 >            es[i] = s.readObject();
807  
808          // Elements are guaranteed to be in "proper order", but the
809          // spec has never explained what that might be.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines