Sobes.tech
Senior
63

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

Bedrijven waar gevraagd werd
СБЕРСБЕР

Antwoord van AI

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(), будет выброшено исключение.