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 |
|
*/ |
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 |
|
} |
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; |
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) |
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) |