Heim > Java > javaLernprogramm > Wie initialisiere ich statische Karten in Java: Statischer Block vs. anonyme Unterklasse?

Wie initialisiere ich statische Karten in Java: Statischer Block vs. anonyme Unterklasse?

Patricia Arquette
Freigeben: 2024-12-03 20:21:16
Original
634 Leute haben es durchsucht

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

Initialisierung statischer Karten in Java

In Java können statische Karten mit zwei primären Methoden initialisiert werden:

1. Statischer Initialisierer

Diese Methode beinhaltet die Verwendung eines statischen Blocks innerhalb der Klassendeklaration, um die Karte zu initialisieren. Ein Beispiel hierfür ist im bereitgestellten Codebeispiel dargestellt:

private static final Map<Integer, String> myMap = new HashMap<>();
static {
    myMap.put(1, "one");
    myMap.put(2, "two");
}
Nach dem Login kopieren

Vorteile:

  • Einfach und unkompliziert
  • Garantiert die Initialisierung bei Klasse Laden

Nachteile:

  • Möglicherweise nicht für komplexe Initialisierungslogik geeignet

2. Instanzinitialisierer (anonyme Unterklasse)

Diese Methode verwendet eine anonyme Unterklasse, um die Karte zu initialisieren. Es ist als Instanzinitialisierer geschrieben, dient aber demselben Zweck wie die statische Initialisierung:

private static final Map<Integer, String> myMap2 = new HashMap<>(){
    {
        put(1, "one");
        put(2, "two");
    }
};
Nach dem Login kopieren

Vorteile:

  • Ermöglicht eine komplexere Initialisierungslogik
  • Erstellt eine unveränderliche Karte

Nachteile:

  • Erfordert die Erstellung einer anonymen Unterklasse
  • Wird möglicherweise nicht in allen Szenarios unterstützt (z. B. wenn die Klasse ist final)

Alternativen:

  • Unveränderliche statische Karten: Durch Initialisieren einer Karte mithilfe eines statischen Blocks und anschließendes Aufrufen von Sammlungen .unmodifiableMap(map), Sie können eine unveränderliche statische Karte erstellen.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich statische Karten in Java: Statischer Block vs. anonyme Unterklasse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage