lastReturned
также может быть next
, если только что использовался метод previous
итератора:
public E previous() {
checkForComodification();
if (!hasPrevious())
throw new NoSuchElementException();
lastReturned = next = (next == null) ? last : next.prev; // <=====
nextIndex--;
return lastReturned.item;
}
Так что в этом случае (previous()
затем remove()
) важно, чтобыremove
установить next
для следующего элемента после того, который был только что удален, что и делает if (next == lastRemoved)
.