Maison > Java > javaDidacticiel > Comment puis-je initialiser efficacement des HashMaps en Java, en tenant compte de la compatibilité des différentes versions ?

Comment puis-je initialiser efficacement des HashMaps en Java, en tenant compte de la compatibilité des différentes versions ?

DDD
Libérer: 2024-12-09 08:28:10
original
639 Les gens l'ont consulté

How Can I Efficiently Initialize HashMaps in Java, Considering Different Version Compatibility?

Initialisation directe de HashMaps : une approche littérale

Contexte

La création de HashMaps peut nécessiter l'ajout manuel de paires clé-valeur. Ce processus peut prendre du temps et être sujet à des erreurs. Naturellement, les développeurs recherchent une approche plus rationalisée.

Java 9 et versions ultérieures

À partir de Java 9, les méthodes d'usine suivantes simplifient la création de cartes :

Map.of("a", "b", "c", "d"); // Up to 10 elements
Map.ofEntries(entry("a", "b"), entry("c", "d")); // Any number of elements
Copier après la connexion

Ces méthodes créent cartes immuables. Pour les cartes mutables, copiez-les :

Map mutableMap = new HashMap<>(Map.of("a", "b"));
Copier après la connexion

Java 8 et versions antérieures

Avant Java 9, l'initialisation directe n'est pas possible. Cependant, il existe des alternatives :

Sous-classe anonyme (avec mises en garde)

Map myMap = new HashMap<String, String>() {{
    put("a", "b");
    put("c", "d");
}};
Copier après la connexion

Mises en garde :

  • Introduit une classe supplémentaire, augmentant consommation de ressources.
  • Contient les références à l'objet de classe externe, évitant ainsi les déchets collection.

Fonction d'initialisation

Une approche plus robuste, évitant les mises en garde des sous-classes anonymes :

Map myMap = createMap();

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

Conclusion

Pour Java 9 , l'utilisation de méthodes d'usine telles que Map.of et Map.ofEntries offre la méthode la plus directe et la plus efficace pour initialiser les HashMaps. Cependant, pour Java 8 et versions antérieures, l'approche de la fonction d'initialisation fournit une alternative qui évite les pièges des 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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal