Maison >Java >javaDidacticiel >Comment initialiser efficacement un HashMap en Java ?

Comment initialiser efficacement un HashMap en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-17 20:18:11944parcourir

How to Efficiently Initialize a HashMap in Java?

Comment initialiser un HashMap directement et de manière concise

De nombreux développeurs Java souhaitent un moyen simple d'initialiser un HashMap avec des paires clé-valeur. Malheureusement, la bibliothèque standard de Java ne dispose pas d'une syntaxe qui s'adapte directement à cela.

Java Versions 9 et supérieures

Cependant, pour Java 9 et versions ultérieures, il y a de bonnes nouvelles ! De nouvelles méthodes d'usine ont été introduites pour simplifier la création de cartes :

  • Map.of : accepte jusqu'à 10 paires clé-valeur sous la forme de Map.of("key1", "value1", "key2", "value2", ...)
  • Map.ofEntries : gère n'importe quel nombre d'entrées en utilisant Map.ofEntries(entry("key1", "value1"), Entry("key2", "value2"), ...)

Exemple :

// Using Map.of for up to 10 elements
Map<String, String> test1 = Map.of("a", "b", "c", "d");

// Using Map.ofEntries for any number of elements
Map<String, String> test2 = Map.ofEntries(entry("a", "b"), entry("c", "d"));

Java Versions 8 et inférieures

Pour les versions Java antérieures, vous devrez ajouter manuellement chaque élément. Voici une option légèrement plus concise utilisant un initialiseur de sous-classe anonyme :

Exemple :

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

Remarque :

  • Cette approche crée une classe supplémentaire, affectant potentiellement la mémoire et les performances.
  • Elle peut contenir une référence au créer un objet, empêcher le garbage collection.

Une alternative impliquant une fonction :

Exemple :

Map<String, String> myMap = createMap();

private static Map<String, String> createMap() {
    Map<String,String> myMap = new HashMap<>();
    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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn