При попытке добавить/удалить некоторые вещи из/в списке в цикле java может поднять ConcurrentModificationException
исключений. После поиска в google я столкнулся с способами преодоления проблемы, например, с применением итератора интерфейса, и когда вы хотите удалить элемент, который вам нужно удалить из списка через сам итератор, используя функцию remove()
.Избегайте исключения ConcurrentModificationException, добавляя элементы в список
Однако среди методов итератора нет функции add()
, поэтому единственный способ добавить элемент без исключения - использовать цикл for (int i = 0; i < list.size(); i++)
, используя индекс/позицию. Однако этот цикл крайне неэффективен с большими списками, поскольку вам нужно получить позицию индекса рассматриваемого элемента, пройдя весь путь через список. Итак, мой вопрос: знаете ли вы какой-либо другой способ, кроме того, как я упомянул, что вы можете использовать, чтобы добавить элемент в список?
Благодаря
Существует простой способ, который принимает другой список и добавляет его в этот список. После использования метода addAll(). –
Посмотрите на http://stackoverflow.com/questions/993025/java-adding-elements-to-a-collection-during-iteration – Batty