Rumah >Java >javaTutorial >Bagaimana untuk Memulakan Peta Statik dalam Java: Pemula Statik vs. Pemula Instance?

Bagaimana untuk Memulakan Peta Statik dalam Java: Pemula Statik vs. Pemula Instance?

DDD
DDDasal
2024-12-03 12:08:16555semak imbas

How to Initialize a Static Map in Java: Static Initializers vs. Instance Initializers?

Memulakan Peta Statik dalam Java

Memulakan peta statik dalam Java melibatkan dua pendekatan utama: pemula statik dan pemula contoh.

Statik Pemula:

Pemula statik membolehkan anda memulakan peta terus dalam definisi kelas. Ini dicapai menggunakan blok statik, seperti yang ditunjukkan dalam contoh berikut:

public class Test {
    private static final Map<Integer, String> myMap = new HashMap<>();

    static {
        myMap.put(1, "one");
        myMap.put(2, "two");
    }
}

Kebaikan:

  • Sintaks ringkas
  • Inisialisasi berlaku pada masa pemuatan kelas
  • Peta adalah muktamad dan tidak boleh diubah suai sekali set

Keburukan:

  • Tidak sesuai untuk peta tidak berubah
  • Boleh sukar dibaca dan diselenggara

Pemula Instance (Tanpa Nama Subkelas):

Pemula kejadian menyediakan sintaks alternatif untuk memulakan ahli statik. Pendekatan ini menggunakan subkelas tanpa nama yang mengatasi pembina lalai:

public class Test {
    private static final Map<Integer, String> myMap2 = new HashMap<>() {
        {
            put(1, "one");
            put(2, "two");
        }
    };
}

Kebaikan:

  • Gula sintaktik untuk pemula statik
  • Boleh digunakan untuk mencipta tidak berubah peta

Keburukan:

  • Memerlukan kelas tanpa nama tambahan
  • Tidak serasi dengan kelas akhir

Tambahan Nota:

  • Pendekatan pemula kejadian dianggap sebagai gula sintaktik untuk pemula statik.
  • Peta tidak berubah boleh dibuat menggunakan pemula statik dengan mula-mula mencipta peta boleh ubah dan kemudian menjadikannya tidak boleh diubah suai menggunakan kaedah Collections.unmodifiableMap().

Atas ialah kandungan terperinci Bagaimana untuk Memulakan Peta Statik dalam Java: Pemula Statik vs. Pemula Instance?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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