Question :
Est-il possible d'initialiser une HashMap Java d'une manière concise comme celle-ci ?
Map<String,String> test = new HashMap<String, String>{"test":"test","test":"test"};
Si oui, quelle est la bonne syntaxe ?
Réponse pour Java version 9 ou supérieure :
Oui, cela est désormais possible en utilisant les méthodes d'usine ajoutées dans Java 9 :
// For up to 10 elements Map<String, String> test1 = Map.of("a", "b", "c", "d"); // For any number of elements import static java.util.Map.entry; Map<String, String> test2 = Map.ofEntries(entry("a", "b"), entry("c", "d"));
Réponse jusqu'à la version Java 8 :
Malheureusement, l'initialisation directe dans le la syntaxe fournie n'est pas possible. Cependant, vous pouvez utiliser une sous-classe anonyme pour raccourcir le code :
Map<String, String> myMap = new HashMap<String, String>() {{ put("a", "b"); put("c", "d"); }};
Vous pouvez également créer une fonction d'initialisation :
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; }
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!