Документация говорит:ListIterator в предыдущей() метод
предыдущий()
Возвращает предыдущий элемент в списке и перемещает позицию курсора в обратном направлении.
Скажем, у меня есть ArrayList: [1,2,3,4,5]
Изначально курсор указывает здесь: [1, 2, 3, 4, 5]
^
|
И после этого куска кода
ListIterator li = al.listIterator();
while(li.hasNext()){
int ab = (int) li.next();
if(ab > 4)
break;
}
[1 2 3 4 5]
^
|
Но когда я
System.out.println(li.previous());
Он выводит 5
вместо этого он должен выводить 4
, поскольку он возвращает предыдущий элемент. Почему это происходит? Как это исправить?.
Я думаю, что ваш вопрос имеет некоторые важные проблемы форматирования, которые делают невозможным понимание вашей проблемы. Исправьте указатель курсора, который у вас есть в вопросе. –
javadoc также указывает на состояние 'Обратите внимание, что чередующиеся вызовы следующего и предыдущего будут возвращать один и тот же элемент повторно'. Поскольку вы назовете 'next' заранее, он снова напечатает тот же элемент. – SomeJavaGuy