Maison  >  Article  >  Java  >  Comment obtenir une véritable immuabilité pour les tableaux primitifs en Java ?

Comment obtenir une véritable immuabilité pour les tableaux primitifs en Java ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-28 07:14:30122parcourir

How To Achieve True Immutability for Primitive Arrays in Java?

Non-modification des tableaux primitifs en Java

La modification des tableaux primitifs est souvent une opération indésirable, qui suscite des inquiétudes quant à l'intégrité des données. Même si le simple fait de déclarer un tableau comme final peut sembler une solution, cela n'empêche pas la mutation des éléments, comme illustré ci-dessous :

<code class="java">final int[] array = new int[] {0, 1, 2, 3};
array[0] = 42;</code>

Pour garantir l'immuabilité des éléments, il faut envisager des alternatives aux tableaux primitifs.

Solution : Utiliser des structures de données immuables

Le framework Java Collections fournit des alternatives immuables aux tableaux primitifs. L'une de ces options est l'interface List, qui offre une implémentation immuable sous la forme d'unmodifiableList(). Cette méthode encapsule une liste mutable existante, interdisant toute modification de ses éléments.

<code class="java">List<Integer> items = Collections.unmodifiableList(Arrays.asList(0,1,2,3));</code>

En utilisant unmodifiableList(), les éléments de la liste deviennent immuables, empêchant efficacement le type d'opération suivant :

<code class="java">items.set(0, 42);</code>

D'autres structures de données immuables, telles que Map et Set, peuvent également être envisagées pour différents besoins d'organisation des données. En implémentant l'immuabilité dans les tableaux Java, les développeurs peuvent améliorer l'intégrité des données et garantir la fiabilité de leurs applications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn