Sobes.tech
Junior — Middle

O que acontece se impedir a remoção de elementos da coleção durante a sua iteração?

sobes.tech IA

Resposta da IA

Se durante a iteração de uma coleção em Java tentar remover elementos diretamente dela (por exemplo, através do método da coleção), isso levará a uma ConcurrentModificationException. Isso acontece porque o iterador acompanha as alterações na coleção, e remover fora dos seus métodos viola a integridade da iteração.

A maneira correta de remover elementos durante a iteração é usar o método remove() do próprio iterador:

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (condição) {
        iterator.remove(); // remoção segura
    }
}

Assim, a remoção não interromperá o funcionamento do iterador e nenhuma exceção será gerada.