Исключение java.util.ConcurrentModificationException

При попытке получить следующий элемент коллекции int elem = itr.next(); выбрасывается исключение: java.util.ConcurrentModificationException

Полный код:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

public class IteratorTest {
    
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        ListIterator<Integer> itr = list.listIterator();
        
        Scanner sc = new Scanner(System.in);
        for(int i = 0; i < 7; i++) {
            list.add(sc.nextInt());
        }
        System.out.println(list);
        while(itr.hasNext()) {
            int elem = itr.next();
            if(elem == 0) {
                itr.set(-1);
            }
        }
        
        System.out.println(list);
        
    }

}

Ответы (1 шт):

Автор решения: Igor
...
for(int i = 0; i < 7; i++) {
    list.add(sc.nextInt());
}
...
ListIterator<Integer> itr = list.listIterator();
while(itr.hasNext()) {
→ Ссылка