Junior — Middle
Quais são as vantagens e desvantagens de usar CopyOnWriteArrayList em Java?
sobes.tech IA
Resposta da IA
CopyOnWriteArrayList é uma implementação segura para threads da interface List em Java, que usa a estratégia de cópia ao escrever.
Vantagens:
- Ideal para cenários com muitas operações de leitura e alterações raras nos dados.
- Permite iterar de forma segura e sem bloqueios sobre a lista, pois os iteradores trabalham com uma cópia imutável.
- Simplifica a programação multithread, reduzindo a probabilidade de erros de sincronização.
Desvantagens:
- A cada operação de escrita (add, set, remove), uma nova cópia do array interno é criada, o que leva a altos custos de memória e tempo em alterações frequentes.
- Não é eficiente para cenários com modificações intensivas.
Exemplo de uso:
CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
list.add("A");
list.add("B");
for (String s : list) {
System.out.println(s);
}
A iteração é segura mesmo que outro thread esteja modificando a lista.