Oto kod źródłowy:Czy ten fragment kodu jest niepotrzebny w kodzie źródłowym pliku Arraylist.remove (indeks int)?
Usuwa element w określonej pozycji na tej liście. Przesuwa jakiekolwiek kolejne elementy po lewej stronie (odejmuje jeden od ich indeksów). Parametry: indeks indeks elementu do usunięcia Powroty: elementu, który został usunięty z listy Zgłasza: java.lang.IndexOutOfBoundsException
public E remove(int index) {
rangeCheck(index);
modCount++;
E oldValue = elementData(index);
int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
elementData[--size] = null; // Let gc do its work
return oldValue;
}
Moje pytanie brzmi:
Jak rangeCheck(index) już zagwarantował, że indeks < rozmiar, czy konieczne jest sprawdzenie, czy if (numMoved > 0)
?