Dies ist die nächste Methode der Arraylist :: Itrist i> = elementData.length in ArrayList :: iterator redundant?
public E next() {
checkForComodification();
int i = cursor;
if (i >= size)
throw new NoSuchElementException();
Object[] elementData = ArrayList.this.elementData;
if (i >= elementData.length)
throw new ConcurrentModificationException();
cursor = i + 1;
return (E) elementData[lastRet = i];
}
Es hat eine if-Anweisung enthält:
if (i >= elementData.length)
throw new ConcurrentModificationException();
Ich denke, es ist selten, dass i >= elementData.length
Zustand passieren, es sei denn, Benutzer TrimToSize Methode aufrufen. Und ich denke, die if-Anweisung ist redundant, weil checkForCodification alles verarbeiten kann. Bin ich richtig?
Ich denke, dass Sie nicht "reichlich" bedeuten ... weil es keinen Sinn ergibt. Meinst du "überflüssig"? –
Ja, vielen Dank. – expoter
* "Habe ich Recht?" * Nein, weil Sie nicht die Garantie haben, dass man den Inhalt nicht nach 'checkForCodification', sondern vor 'if (i> = elementData.length)' manipuliert. Sie werden viele Fälle finden, wenn Sie nach * "Java ConcurrentModificationException Iterator" * googlen. – Tom