Cópia imutável de coleções
Crie uma cópia imutável de qualquer coleção em uma única chamada.
Comparação de Código
✕ Java 8
List<String> copy =
Collections.unmodifiableList(
new ArrayList<>(original)
);
✓ Java 10+
List<String> copy =
List.copyOf(original);
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Cópia inteligente
Pula a cópia se a origem já for imutável.
Uma chamada
Sem construção manual de ArrayList + encapsulamento.
Cópia defensiva
Alterações na coleção original não afetam a cópia.
Abordagem Antiga
Cópia manual + encapsulamento
Abordagem Moderna
List.copyOf()
Desde o JDK
10
Dificuldade
Iniciante
Suporte JDK
Cópia imutável de coleções
Disponível
Amplamente disponível desde o JDK 10 (março de 2018)
Como funciona
List.copyOf(), Set.copyOf() e Map.copyOf() criam snapshots imutáveis de coleções existentes. Se a origem já for uma coleção imutável, nenhuma cópia é feita.
Documentação Relacionada