По Java API
-Почему API java не позволяет нам добавлять и удалять вместе?
IllegalStateException - если ни рядом, ни предыдущие были вызваны, или удалить или добавить были вызваны после последнего вызова к следующему или предыдущему
remove()
- Удаляет из списка последнего элемент, который был возвращен следующей() или предыдущей() (дополнительная операция). Этот вызов может быть сделан только один раз за вызов до следующего или предыдущего. Это можно сделать, только если add (E) не был вызван после последнего вызова следующего или предыдущего.
Поскольку каждый раз, когда мы призывая add
и remove
вместе он должен удалить последний элемент, добавленный add
почему эта причина IllegalStateException
, например, в моем code-
- вызова каждый раз перед тем
next()
remove()
- также
remove()
не вызывается дважды без звонкаnext()
тогда почему существует java.lang.IllegalStateException
по призванию add
и remove
вместе.
Мой ява код
это-ListIterator<String> listIterator=list.listIterator();
while(listIterator.hasNext()){
System.out.println(listIterator.next());
listIterator.add("Intel");
listIterator.remove();
//listIterator.remove();
}
после вызова next()
итератор на следующий элемент.
, когда мы добавляем элемент, add()
итератора движется вперед на последнем элементе добавил
тогда почему существует java.lang.IllegalStateException
по призванию remove()
именно это мой вопрос, что это за состояние «неуверенности»? –
Это когда курсор нельзя разместить нигде, потому что он не знает, хотите ли вы быть перед добавленным элементом, после добавленного элемента или после исходного элемента. То же самое для удаления, но с меньшим выбором. Чтобы удалить эту неуверенность, выполните новый вызов 'hasPrevious' /' hasNext'. –