Sobes.tech
Junior — Middle

Qual é o objetivo de usar o conceito Fail-Fast ao modificar coleções de dados?

sobes.tech IA

Resposta da IA

A conceção Fail-Fast ao trabalhar com coleções em Java destina-se a detectar rapidamente erros relacionados com a alteração simultânea da coleção durante a sua iteração. Por exemplo, se uma parte do código itera sobre a coleção e outra a modifica (adiciona ou remove elementos), o mecanismo Fail-Fast lança imediatamente uma exceção ConcurrentModificationException.

Isto ajuda a evitar erros ocultos e comportamentos imprevisíveis do programa, pois o erro é detetado no momento em que ocorre, e não mais tarde, quando os dados já podem estar corrompidos.

Exemplo:

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");

for (String s : list) {
    if (s.equals("a")) {
        list.remove(s); // provocará uma ConcurrentModificationException
    }
}

Fail-Fast garante segurança e previsibilidade ao trabalhar com coleções em ambientes multithread ou durante alterações durante a iteração.