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.
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"));
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!