"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como alcançar a verdadeira imutabilidade para matrizes primitivas em Java?

Como alcançar a verdadeira imutabilidade para matrizes primitivas em Java?

Publicado em 01/11/2024
Navegar:746

How To Achieve True Immutability for Primitive Arrays in Java?

Não modificando matrizes primitivas em Java

A modificação de matrizes primitivas costuma ser uma operação indesejável, levando a preocupações sobre a integridade dos dados. Embora simplesmente declarar um array como final possa parecer uma solução, isso não impede a mutação do elemento, conforme ilustrado abaixo:

final int[] array = new int[] {0, 1, 2, 3};
array[0] = 42;

Para garantir a imutabilidade dos elementos, deve-se considerar alternativas aos arrays primitivos.

Solução: utilizando estruturas de dados imutáveis

A estrutura Java Collections fornece alternativas imutáveis ​​para matrizes primitivas. Uma dessas opções é a interface List, que oferece uma implementação imutável na forma de unmofiableList(). Este método agrupa uma lista mutável existente, proibindo quaisquer alterações em seus elementos.

List items = Collections.unmodifiableList(Arrays.asList(0,1,2,3));

Ao usar unmodifiableList(), os elementos da lista tornam-se imutáveis, impedindo efetivamente o seguinte tipo de operação:

items.set(0, 42);

Outras estruturas de dados imutáveis, como Map e Set, também podem ser consideradas para diferentes necessidades de organização de dados. Ao implementar a imutabilidade em arrays Java, os desenvolvedores podem aprimorar a integridade dos dados e garantir a confiabilidade de seus aplicativos.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3