Я пишу программу как часть учебника для начинающего студента Java. У меня есть следующий метод, и всякий раз, когда я его запускаю, он дает мне следующее исключение:
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at Warehouse.receive(Warehouse.java:48)
at MainClass.main(MainClass.java:13)
Вот сам метод внутри класса Warehouse:
public void receive(MusicMedia product, int quantity) {
if ( myCatalog.size() != 0) { // Checks if the catalog is empty
// if the catalog is NOT empty, it will run through looking to find
// similar products and add the new product if there are none
for (MusicMedia m : myCatalog) {
if ( !m.getSKU().equals(product.getSKU()) ) {
myCatalog.add(product);
}
}
} else { // if the catalog is empty, just add the product
myCatalog.add(product);
}
}
Проблема, похоже, связана с оператором if else. Если я не включу if else, программа запустится, хотя и не будет работать должным образом, потому что цикл не будет выполнять итерацию по пустому ArrayList.
Я пытался добавить продукт только для того, чтобы он не был пустым в других частях кода, но все равно выдает ту же ошибку. Любые идеи?