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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-09-06 20:53:02
ke hadapan
928 orang telah melayarinya

在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>
Salin selepas log masuk
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>
   }
}
Salin selepas log masuk

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>
Salin selepas log masuk

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);
   }
}
Salin selepas log masuk

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 Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan