Maison  >  Article  >  Java  >  Comment obtenir une véritable immuabilité avec des tableaux en Java : au-delà des types primitifs ?

Comment obtenir une véritable immuabilité avec des tableaux en Java : au-delà des types primitifs ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 14:41:30227parcourir

How to Achieve True Immutability with Arrays in Java: Beyond Primitive Types?

Tableaux immuables en Java : au-delà des types primitifs

Lorsque vous travaillez avec des tableaux en Java, vous pouvez rencontrer des situations où vous avez besoin d'une structure de données immuable cela empêche la modification des éléments. Bien que marquer les tableaux comme finaux puisse restreindre les modifications de référencement, cela n'empêche pas la manipulation des éléments internes.

Pour une véritable immuabilité, envisagez des alternatives aux tableaux primitifs. Une option consiste à exploiter les listes, qui offrent une large gamme d'implémentations immuables. Par exemple, en utilisant la méthode Collections.unmodifiableList, vous pouvez créer une version immuable d'une liste mutable.

Considérez l'exemple suivant :

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

Dans ce cas, même si la référence du tableau lui-même est définitif, vous pouvez toujours modifier les éléments individuels, entraînant une modification du contenu du tableau.

Pour obtenir l'immuabilité, vous pouvez utiliser le code suivant :

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

En convertissant le liste mutable en liste immuable en utilisant Collections.unmodifiableList, vous vous assurez que les éléments restent immuables, vous protégeant ainsi des modifications involontaires.

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