Исключение с ListIterator в Java

Я получаю это исключение в моей программе:

Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.LinkedList$ListItr.checkForComodification(Unknown Source)
    at java.util.LinkedList$ListItr.next(Unknown Source)
    at fenn20.CarLists.main(CarLists.java:46)

Кажется, это вызвано последними двумя строками в программе (.hasPrevious и previous), но, похоже, это не имеет смысла, поскольку.hasNext раньше работал в коде.

    public static void main(String[] args) {
        ArrayList <Car> cararray1 = new ArrayList <Car>();
        cararray1.add(new Car("Toyota", "Corolla", 10000));
        cararray1.add(new Car("Honda", "Civic", 5000));
        cararray1.add(new Car("Honda", "Accord", 12500));
        cararray1.add(new Car("Mitsubishi", "Outlander", 20000));
        cararray1.add(new Car("Mitsubishi", "Lancer", 15000));
        cararray1.add(new Car("Toyota", "Camry", 7500));

        for (int i = 0; i < cararray1.size(); i++) {
            System.out.println(cararray1.get(i));
        }
        System.out.println();
        System.out.println("Most Expensive Car: " + Collections.max(cararray1, new CarComparator()));

        LinkedList<Car> cararray2 = new LinkedList <Car>(cararray1);
        cararray2.add(4, new Car("Hyundai", "Elantra", 3000));
        System.out.println("Added New Car: " + cararray2.get(4));

        Collections.sort(cararray2, new CarComparator());

        System.out.println();
        ListIterator<Car> lit = cararray2.listIterator();
        System.out.println("In Increasing Order:");
        while(lit.hasNext()){
            System.out.println(lit.next());
        }
        System.out.println();

        System.out.println("Removed First Car: " + cararray2.get(0));
        cararray2.remove(0);
        System.out.println("Removed Last Car: " + cararray2.get(5));
        cararray2.remove(5);

        System.out.println();
        System.out.println("In Decreasing Order:");
        while(lit.hasPrevious()){
            System.out.println(lit.previous());
        }
    }
}

0 ответов

Другие вопросы по тегам