Инициализируется в 0 (обратите внимание, что это переменная экземпляра суперкласса AbstractList
):
protected transient int modCount = 0;
и увеличивается в нескольких местах, в которых List
структурно модифицируется (т.е. элементы добавляются или удаляются).
Например:
public E remove(int index) {
rangeCheck(index);
modCount++;
....
}
Обратите внимание, что класс Itr
является внутренним классом ArrayList
, и поэтому он имеет доступ к членам включающего экземпляра ArrayList
(который включает в себя переменную modCount
экземпляра AbstractList
super- класс).