Sobes.tech
Назад к вопросам
Senior
8

Как удалить элемент из списка во время итерации по нему?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Удалять элементы из списка во время итерации по нему напрямую опасно, так как это может привести к ConcurrentModificationException или пропуску элементов. В Java для безопасного удаления элементов во время обхода коллекции используют итератор и его метод remove().

Пример:

List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c", "d"));
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String element = iterator.next();
    if (element.equals("b")) {
        iterator.remove(); // безопасное удаление
    }
}

Такой подход гарантирует корректное удаление без ошибок и пропуска элементов. Если использовать цикл for-each и удалять напрямую через list.remove(), будет выброшено исключение.