617 |
|
*/ |
618 |
|
E removeAt(int i) { |
619 |
|
// assert i >= 0 && i < size; |
620 |
+ |
final Object[] es = queue; |
621 |
|
modCount++; |
622 |
|
int s = --size; |
623 |
|
if (s == i) // removed last element |
624 |
< |
queue[i] = null; |
624 |
> |
es[i] = null; |
625 |
|
else { |
626 |
< |
E moved = (E) queue[s]; |
627 |
< |
queue[s] = null; |
626 |
> |
E moved = (E) es[s]; |
627 |
> |
es[s] = null; |
628 |
|
siftDown(i, moved); |
629 |
< |
if (queue[i] == moved) { |
629 |
> |
if (es[i] == moved) { |
630 |
|
siftUp(i, moved); |
631 |
< |
if (queue[i] != moved) |
631 |
> |
if (es[i] != moved) |
632 |
|
return moved; |
633 |
|
} |
634 |
|
} |