Sobes.tech
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.