2014-01-28 3 views
-2

При попытке добавить/удалить некоторые вещи из/в списке в цикле java может поднять ConcurrentModificationException исключений. После поиска в google я столкнулся с способами преодоления проблемы, например, с применением итератора интерфейса, и когда вы хотите удалить элемент, который вам нужно удалить из списка через сам итератор, используя функцию remove().Избегайте исключения ConcurrentModificationException, добавляя элементы в список

Однако среди методов итератора нет функции add(), поэтому единственный способ добавить элемент без исключения - использовать цикл for (int i = 0; i < list.size(); i++), используя индекс/позицию. Однако этот цикл крайне неэффективен с большими списками, поскольку вам нужно получить позицию индекса рассматриваемого элемента, пройдя весь путь через список. Итак, мой вопрос: знаете ли вы какой-либо другой способ, кроме того, как я упомянул, что вы можете использовать, чтобы добавить элемент в список?

Благодаря

+0

Существует простой способ, который принимает другой список и добавляет его в этот список. После использования метода addAll(). –

+0

Посмотрите на http://stackoverflow.com/questions/993025/java-adding-elements-to-a-collection-during-iteration – Batty

ответ

3

Мой вам совет будет прислушиваться к советам ConcurrentModificationException и просто изменить свой подход к этой проблеме. Вы не должны изменять список во время его повтора.

Смежные вопросы