Heim > Java > javaLernprogramm > Wie initialisiert man statische Karten in Java am besten?

Wie initialisiert man statische Karten in Java am besten?

DDD
Freigeben: 2024-12-06 15:48:22
Original
490 Leute haben es durchsucht

How to Best Initialize Static Maps in Java?

Statische Karten in Java initialisieren: Optionen und Überlegungen

Statische Karten bieten eine praktische Möglichkeit, Schlüssel-Wert-Paare innerhalb einer Klasse zu speichern. Wenn es um die Initialisierung statischer Karten geht, bietet Java zwei primäre Methoden: den statischen Initialisierer und den Instanzinitialisierer (unter Verwendung einer anonymen Unterklasse).

Statischer Initialisierer

Der statische Mit der Initialisierungssyntax können Sie die Karte definieren und ihre Werte in einem statischen Block auffüllen, wie im folgenden Beispiel dargestellt:

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

Diese Methode ist unkompliziert und erfordert keine zusätzlichen Klassen oder syntaktischen Zucker. Allerdings werden alle nach der Initialisierung an der Karte vorgenommenen Änderungen nicht in der statischen Version widergespiegelt.

Instanzinitialisierer (anonyme Unterklasse)

Der Instanzinitialisierer auf der Andererseits wird eine anonyme Unterklasse zum Initialisieren der Karte verwendet:

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

Dieser Ansatz bietet eine kompakte und prägnante Syntax zum Initialisieren der Karte. Es wird jedoch eine anonyme Unterklasse erstellt, die möglicherweise die Leistung beeinträchtigen kann, insbesondere in stark verschachtelten Instanzen.

Überlegungen

  • Die Instanzinitialisierungsoption sollte aus diesem Grund sparsam verwendet werden aus Leistungsgründen.
  • Beide Methoden erstellen standardmäßig veränderbare Karten. Um eine unveränderliche Karte zu erstellen, können Sie die Collections.unmodifiableMap()-Methode von Java verwenden:
private static final Map<Integer, String> myMap = Collections.unmodifiableMap(aMap);
Nach dem Login kopieren

Welche Methode soll gewählt werden?

Die Wahl zwischen Der statische Initialisierer und der Instanzinitialisierer hängen vom jeweiligen Anwendungsfall ab:

  • Für eine einfache und effiziente Initialisierung ist der statische Initialisierer geeignet wird empfohlen.
  • Für sehr große oder komplexe Karten, bei denen es auf die Leistung ankommt, wird der statische Initialisierer bevorzugt.
  • Wenn Unveränderlichkeit gewünscht wird, kann der statische Initialisierer mit Collections.unmodifiableMap() verwendet werden gebraucht.

Das obige ist der detaillierte Inhalt vonWie initialisiert man statische Karten in Java am besten?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage