1122 |
|
return true; |
1123 |
|
} |
1124 |
|
|
1125 |
+ |
public void replaceAll(UnaryOperator<E> operator) { |
1126 |
+ |
root.replaceAllRange(operator, offset, offset + size); |
1127 |
+ |
} |
1128 |
+ |
|
1129 |
|
public boolean removeAll(Collection<?> c) { |
1130 |
|
return batchRemove(c, false); |
1131 |
|
} |
1595 |
|
|
1596 |
|
@Override |
1597 |
|
public void replaceAll(UnaryOperator<E> operator) { |
1598 |
+ |
replaceAllRange(operator, 0, size); |
1599 |
+ |
} |
1600 |
+ |
|
1601 |
+ |
private void replaceAllRange(UnaryOperator<E> operator, int from, int to) { |
1602 |
|
Objects.requireNonNull(operator); |
1603 |
|
final int expectedModCount = modCount; |
1604 |
|
final Object[] es = elementData; |
1605 |
< |
final int size = this.size; |
1598 |
< |
for (int i = 0; modCount == expectedModCount && i < size; i++) |
1605 |
> |
for (int i = from; modCount == expectedModCount && i < to; i++) |
1606 |
|
es[i] = operator.apply(elementAt(es, i)); |
1607 |
|
if (modCount != expectedModCount) |
1608 |
|
throw new ConcurrentModificationException(); |
1602 |
– |
modCount++; |
1609 |
|
// checkInvariants(); |
1610 |
|
} |
1611 |
|
|