Rumah  >  Artikel  >  Java  >  Dalam Java 9, bagaimanakah kita membuat Peta tidak boleh diubah?

Dalam Java 9, bagaimanakah kita membuat Peta tidak boleh diubah?

WBOY
WBOYke hadapan
2023-09-06 20:53:02733semak imbas

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

Peta yang tidak boleh diubah suai ialah peta yang kunci dan nilainya tidak boleh ditambah , dipadamkan , atau tidak boleh dibuat selepas peta tidak boleh diubah. Kaedah kilang statik dalam Peta: Map.of() dan Map.ofEntries() menyediakan cara yang mudah untuk mencipta peta yang tidak boleh diubah suai dalam Java 9 >.

Gunakan

Map.of() dan Contoh peta dicipta oleh kaedah Map.ofEntries() mempunyai ciri-ciri berikut. p>

    Peta yang dikembalikan melalui kaedah kilang biasanya
  • tidak berubah. Ini bermakna kunci dan nilai tidak boleh ditambah , dipadamkan atau dikemas kini . Memanggil mana-mana kaedah mutator pada peta akan menghasilkan UnsupportedOperationException.
  • Jika peta mengandungi
  • kunci/nilai yang menjadi dirinya sendiri boleh berubah >, ia mungkin menyebabkan peta berkelakuan tidak konsisten t atau kandungannya kelihatan berubah.
  • Peta tidak berubah tidak membenarkan
  • null kekunci dan nilai ​​. Jika anda cuba mencipta dengan kunci atau nilai nol, NullPointerException akan dilemparkan.
  • Kunci atau nilai pendua akan ditolak pada masa penciptaan itu sendiri. Menghantar kunci pendua kepada kaedah kilang statik menghasilkan IllegalArgumentException.
  • Tidak boleh ubah peta adalah boleh bersiri > jika semua kunci dan nilai boleh bersiri.
  • Tertib lelaran peta
  • tidak dinyatakan dan mungkin berubah.
Sintaks

<strong>Map.of(k1, v1, k2, v2)
Map.ofEntries(entry(k1, v1), entry(k2, v2),...)</strong>
H2>Map.of() contoh

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.of() contoh

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

outputreee

Atas ialah kandungan terperinci Dalam Java 9, bagaimanakah kita membuat Peta tidak boleh diubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam