Я получаю исключение ConcurrentModificationException при попытке использовать Iterator для поиска определенного целого числа.
Я не знаю, почему это происходит.Любое исследование, которое я изучал, говорит, что это исключение, которое появляется, когда я пытаюсь редактировать список внутри цикла for.Я этого не делаю, на самом деле я даже не редактирую список в Итераторе.
private ArrayList<Integer> list = new ArrayList();
private ListIterator<Integer> iterator = list.listIterator();
public void search(int input) {
while (iterator.hasNext()) {
if (input == iterator.next()) {
System.out.println(iterator.next());
}
}
}
public static void main(String[] args) {
SearchList sl = new SearchList();
for (int i = 0; i < 10; i++) {
sl.list.add(i);
}
System.out.println(sl.list);
sl.search(6);
}
ОЖИДАЕМЫЙ ВЫХОД:
6
АКТУАЛЬНЫЙ ВЫХОД:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
at java.util.ArrayList$Itr.next(ArrayList.java:859)
at SearchList.search(SearchList.java:23)
at SearchList.main(SearchList.java:38)```