Heim >Java >javaLernprogramm >Wie kann ich eine HashMap in Java effizient initialisieren?

Wie kann ich eine HashMap in Java effizient initialisieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-25 13:52:13750Durchsuche

How Can I Initialize a HashMap in Java Efficiently?

Eine HashMap-Literatur initialisieren

Eine Java-HashMap mit bestimmten Schlüssel-Wert-Paaren auf prägnante und wörtliche Weise zu initialisieren, war für Entwickler eine schwer fassbare Funktion. Fortschritte in Java haben jedoch den Weg für eine vereinfachte Kartenerstellung geebnet.

Java 9 und höher: Factory-Methoden

Ab Java Version 9 führt die Map-Klasse Factory-Methoden ein, die die Kartenerstellung optimieren:

  • Map.of: Kann Karten mit bis zu 10 Elementen erstellen unter Verwendung einer prägnanten Syntax:

    Map<String, String> test1 = Map.of("a", "b", "c", "d");
  • Map.ofEntries: Erstellt Karten mit einer beliebigen Anzahl von Elementen:

    import static java.util.Map.entry;
    
    Map<String, String> test2 = Map.ofEntries(
      entry("a", "b"),
      entry("c", "d")
    );

Es ist jedoch wichtig zu beachten, dass diese Methoden zu unveränderlichen Karten führen. Für veränderliche Karten können Sie eine Kopie erstellen mit:

mutableMap = new HashMap<>(Map.of("a", "b"));

Java 8 und früher: Anonyme Klasse oder Funktion

Vor Java 9 wurde die direkte Literalinitialisierung nicht unterstützt. Um einen ähnlichen Effekt zu erzielen, können Sie die folgenden Techniken anwenden:

  • Anonyme Klasse mit Initialisierer: Definieren Sie eine anonyme Unterklasse, die die Karte in ihrem Konstruktor initialisiert:

    Map<String, String> myMap = new HashMap<String, String>() {{
      put("a", "b");
      put("c", "d");
    }};
  • Funktion zur Initialisierung: Erstellen Sie eine Funktion zum Generieren Erstellen Sie eine Karte und verwenden Sie sie im Initialisierer:

    Map<String, String> myMap = createMap();
    
    private static Map<String,String> createMap() {
      Map<String,String> myMap = new HashMap<String,String>();
      myMap.put("a", "b");
      myMap.put("c", "d");
      return myMap;
    }

Der letztere Ansatz ist sauberer und vermeidet potenzielle Fallstricke, die mit anonymen Unterklassen verbunden sind.

Das obige ist der detaillierte Inhalt vonWie kann ich eine HashMap in Java effizient initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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