Я понимаю, что список массивов вызывает исключение параллельной модификации при попытке выполнить (добавить/удалить) в списке, итерации по списку.Странно не исключение одновременной модификации. Зачем?
Например, следующий метод должен вызывать Concurrent Modification Exception, когда я пытаюсь удалить элемент, итерации.
public static void testMe() {
inputList = new ArrayList<String>();
inputList.add("1");
inputList.add("2");
inputList.add("3");
// Try comment the above insertion and uncomment this and run
// for (int i = 0; i < 5; i++) {
// inputList.add(""+i);
// }
System.out.println("List Size:" + inputList.size());
Iterator<String> iterator = inputList.iterator();
while (iterator.hasNext()) {
String value = (String) iterator.next();
if (value.equals("2")) {
inputList.remove(value);
System.out.println("remvoing 2");
}
}
System.out.println("List Size:" + inputList.size());
}
Странно, я не получаю один. Но если я вставляю элементы, используя цикл for, генерируется исключение. Интересно, почему это не происходит раньше?
Извините. !! Это действительно дублирующий вопрос. Мне следовало бы заглянуть за рамки того, что было предложено переполнением стека при написании этого вопроса. http://stackoverflow.com/questions/29723458/why-doesnt-this-code-throw-a-concurrentmodificationexception. – SaravMani