L'initialisation d'un Java HashMap avec des paires clé-valeur spécifiques de manière concise et littérale a été une fonctionnalité insaisissable pour les développeurs. Cependant, les progrès de Java ont ouvert la voie à une création simplifiée de cartes.
À partir de la version 9 de Java, la classe Map introduit des méthodes d'usine qui rationalisent la création de cartes :
Map.of : Peut créer des cartes avec jusqu'à 10 éléments en utilisant une syntaxe concise :
Map<String, String> test1 = Map.of("a", "b", "c", "d");
Map.ofEntries : Crée des cartes avec n'importe quel nombre d'éléments :
import static java.util.Map.entry; Map<String, String> test2 = Map.ofEntries( entry("a", "b"), entry("c", "d") );
Cependant, il est important de noter que ces méthodes aboutissent à des cartes immuables. Pour les cartes mutables, vous pouvez créer une copie en utilisant :
mutableMap = new HashMap<>(Map.of("a", "b"));
Avant Java 9, l'initialisation littérale directe n'était pas prise en charge. Pour obtenir un effet similaire, vous pouvez utiliser les techniques suivantes :
Classe anonyme avec initialiseur : définissez une sous-classe anonyme qui initialise la carte dans son constructeur :
Map<String, String> myMap = new HashMap<String, String>() {{ put("a", "b"); put("c", "d"); }};
Fonction d'initialisation : Créer une fonction pour générer une carte et utilisez-la dans l'initialiseur :
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; }
Cette dernière approche est plus propre et évite tout piège potentiel associé aux sous-classes anonymes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!