Чтобы удалить элемент из ArrayList в цикле for, вам нужно быть осторожным и не изменять список во время итерации по нему. Вот несколько подходов, которые вы можете использовать:
-
Метод 1. Повторение в обратном порядке
- Начать цикл с последнего индекса и перейти к первому индексу.
- Используйте метод
removeArrayList, чтобы удалить элементы по мере необходимости. - Такой подход гарантирует, что удаление элемента не повлияет на последующие итерации.
- Пример:
for (int i = list.size() - 1; i >= 0; i--) { if (someCondition) { list.remove(i); } }
-
Метод 2. Использование итератора
- Используйте
Итератордля перебора ArrayList. - Используйте метод
removeIterator, чтобы удалить элементы по мере необходимости. - Этот подход также позволяет избежать исключения ConcurrentModificationException.
- Пример:
Iterator<Type> iterator = list.iterator(); while (iterator.hasNext()) { Type element = iterator.next(); if (someCondition) { iterator.remove(); } }
- Используйте
-
Метод 3. Создайте копию
- Создайте отдельный ArrayList для хранения удаляемых элементов.
- Пройдитесь по исходному ArrayList и добавьте элементы, которые необходимо удалить, в отдельный ArrayList.
- После цикла удалите элементы из исходного ArrayList с помощью метода
removeAll. - Пример:
ArrayList<Type> elementsToRemove = new ArrayList<>(); for (Type element : list) { if (someCondition) { elementsToRemove.add(element); } } list.removeAll(elementsToRemove);
Это несколько распространенных методов удаления элементов из ArrayList в цикле for. Выберите метод, который соответствует вашим конкретным требованиям.