Потому что итератор не продвигается вперед, когда вы добавляете элемент. У вас есть список:
"Oranges" "Apples" "Strawberries" ...
Когда вы вызываете myarraylist1.listIterator()
, создается Iterator, и его «текущая» (курсор) позиция устанавливается непосредственно перед "Oranges"
, например:
"Oranges" "Apples" "Strawberries" ...
//Iterator points here ^
Затем вы добавляете элемент на передний план с помощью myitr1.add("TREEEEEEEEEEEES")
, но курсор итератора не перемещается, поэтому это выглядит так:
"TREEEEEEEEEEEES" "Oranges" "Apples" "Strawberries" ...
//Iterator points here ^
Если вы вызываете myitr1.previous()
перед своим while (myitr1.hasNext())
l oop, он вернет go один элемент назад и укажет на нужное место.