Maison > Java > javaDidacticiel > En Java 9, comment créer une Map immuable ?

En Java 9, comment créer une Map immuable ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-09-06 20:53:02
avant
1013 Les gens l'ont consulté

在Java 9中,我们如何创建一个不可修改的Map?

Une carte non modifiable est une carte dont les clés et valeurs ne peuvent pas être ajoutées , supprimées ou mises à jour après la création d'une instance de carte non modifiable. Les méthodes d'usine statique dans Map : Map.of() et Map.ofEntries() fournissent un moyen pratique de créer des cartes non modifiables dans Java 9>.

Utilisez Map.of() et The map L'instance créée par la méthode Map.ofEntries() présente les caractéristiques suivantes. p>

  • La carte renvoyée par une méthode d'usine est généralement immuable. Cela signifie que les clés et valeurs ne peuvent pas être ajoutées , supprimées ou mises à jour . L’appel de n’importe quelle méthode de mutation sur la carte entraînera une UnsupportedOperationException.
  • Si une carte contient des clés/valeurs qui sont elles-mêmes mutables>, cela peut entraîner un comportement incohérenty de la carte ou un changement de son contenu.
  • Les cartes immuables n'autorisent pas les null clés et valeurs . Si vous essayez de créer avec une clé ou une valeur nulle, une NullPointerException sera levée.
  • Les clés ou valeurs en double seront rejetées au moment de la création elle-même. La transmission de clés en double à une méthode de fabrique statique entraîne une IllegalArgumentException.
  • Immuable map est sérialisable > si toutes les clés et valeurs sont sérialisables.
  • L'ordre d'itération de la carte n'est pas précisé et peut changer.

Syntaxe H2>
<strong>Map.of(k1, v1, k2, v2)
Map.ofEntries(entry(k1, v1), entry(k2, v2),...)</strong>
Copier après la connexion

Map.ofEntries() exemple

import java.util.Map;
public class UnmodifiableMapTest {
   public static void main(String[] args) {
      Map<String, String> empMap = <strong>Map.of</strong>("101", "Raja", "102", "Adithya", "103", "Jai", "104", "Chaitanya");
      System.out.println("empMap - " + empMap);
      empMap.put("105", "Vamsi");      <strong>// throws UnsupportedOperationException</strong>
   }
}
Copier après la connexion

output

<strong>empMap - {104=Chaitanya, 103=Jai, 102=Adithya, 101=Raja}
Exception in thread "main" java.lang.UnsupportedOperationException
         at java.base/java.util.ImmutableCollections.uoe(Unknown Source)
         at java.base/java.util.ImmutableCollections$AbstractImmutableMap.put(Unknown Source)
         at UnmodifiableMapTest.main(UnmodifiableMapTest.java:7)</strong>
Copier après la connexion

Map.ofEntries() exemple

import java.util.Map;
import static java.util.Map.entry;
public class UnmodifidMapTest {
   public static void main(String[] args) {
      Map<String, String> empMap = <strong>Map.ofEntries</strong>(entry("101", "Raja"), entry("102", "Adithya"), entry("103", "Jai"), entry("104", "Chaitanya"));
      System.out.println("empMap - " + empMap);
   }
}
Copier après la connexion

output

<strong>empMap - {102=Adithya, 101=Raja, 104=Chaitanya, 103=Jai}</strong>
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal