Нет, как предлагали другие ответы, ConcurrentModificationException
не будет встречаться в данном коде.
Так, когда возникает исключение ConcurrentModificationException?
В однопоточной среде это обычно происходит, когда выиспользуйте Iterators, чтобы перебрать коллекцию и изменить ее одновременно.
Почему?
Если вы проверяете исходный код реализаций Iterator, он всегда выполняет checkForComodification () всякий раз, когда вы используете какой-либо метод итератора (например,далее (), удалить ()).Например, код для этого метода в ArrayList.java:
final void checkForComodification() {
if (modCount != expectedModCount)
throw new ConcurrentModificationException();
}
, где modCount - статическая переменная, поддерживаемая на уровне класса ArrayList, которая указывает, сколько раз этот список был структурномодифицирована.И ожидаемое количество модификаций pectedModCount поддерживается на уровне класса Iterator, который изначально равен modCount.
Таким образом, всякий раз, когда ожидаемое количество модификаций не соответствует фактически выполненным модификациям, вы получаетеисключение.
Поскольку в вашем случае вы не использовали ничего из этого, проверки на Co-модификацию не будет, и, следовательно, вы не получите ConcurrentModificationException
.
Примечание.: Как указано в в этом ответе , вы получите IndexOutOfBoundsException
, так как вы проверили index < len
в цикле for и len
инициализируется до начального размера массива.Простое решение этого было бы:
for(int index=0;index < nums.size;index++)