Я пытаюсь добавить ListIterator во время итерации по нему, но при проверке работоспособности hasNext () всегда возвращает false.
As javadoc утверждает, что ListIterator является "Итератором длясписки, которые позволяют программисту обходить список в любом направлении, изменять список во время итерации и получать текущую позицию итератора в списке. "однако, когда я пытаюсь добавить, я не получаю сообщение об ошибке и ListIterator не получает новый элемент.
public void foo() {
List<String> bar = new ArrayList<String>();
bar.add("foobar");
ListIterator<String> quux = bar.listIterator();
while(quux.hasNext()) {
if(quux.next().equals("foobar")) {
quux.add("baz");
}
}
}
В конце этой функции я ожидаю, что ListIterator будет содержать новую строку "baz",Однако когда я вызываю метод hasNext (), он возвращает false. Программа даже прошла if-Statement, просто оказалось, что add-метод не делает то, что должен делать.