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

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

WBOY
WBOYavant
2023-09-06 20:53:02733parcourir

在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>

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>
   }
}

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>

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);
   }
}

output

<strong>empMap - {102=Adithya, 101=Raja, 104=Chaitanya, 103=Jai}</strong>

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer