Rumah > Java > javaTutorial > Bagaimana untuk Memulakan Peta Statik dalam Java: Blok Statik lwn Subkelas Tanpa Nama?

Bagaimana untuk Memulakan Peta Statik dalam Java: Blok Statik lwn Subkelas Tanpa Nama?

Patricia Arquette
Lepaskan: 2024-12-03 20:21:16
asal
634 orang telah melayarinya

How to Initialize Static Maps in Java: Static Block vs. Anonymous Subclass?

Memulakan Peta Statik dalam Java

Di Java, peta statik boleh dimulakan menggunakan dua kaedah utama:

1. Pemula Statik

Kaedah ini melibatkan penggunaan blok statik dalam perisytiharan kelas untuk memulakan peta. Contoh ini ditunjukkan dalam sampel kod yang disediakan:

private static final Map<Integer, String> myMap = new HashMap<>();
static {
    myMap.put(1, "one");
    myMap.put(2, "two");
}
Salin selepas log masuk

Kelebihan:

  • Mudah dan mudah
  • Jaminan permulaan apabila kelas memuatkan

Kelemahan:

  • Mungkin tidak sesuai untuk logik permulaan yang kompleks

2. Instance Initialiser (Subkelas Tanpa Nama)

Kaedah ini menggunakan subkelas tanpa nama untuk memulakan peta. Ia ditulis sebagai pemula kejadian tetapi mempunyai tujuan yang sama seperti pemulaan statik:

private static final Map<Integer, String> myMap2 = new HashMap<>(){
    {
        put(1, "one");
        put(2, "two");
    }
};
Salin selepas log masuk

Kelebihan:

  • Membolehkan logik pemulaan yang lebih kompleks
  • Mencipta yang tidak berubah peta

Kelemahan:

  • Memerlukan mencipta subkelas tanpa nama
  • Mungkin tidak disokong dalam semua senario (cth., apabila kelas adalah akhir)

Alternatif:

  • Peta Statik Tidak Berubah: Dengan memulakan peta menggunakan blok statik dan kemudian memanggil Koleksi .unmodifiableMap(map), anda boleh mencipta peta statik yang tidak boleh diubah.

Atas ialah kandungan terperinci Bagaimana untuk Memulakan Peta Statik dalam Java: Blok Statik lwn Subkelas Tanpa Nama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan