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
717 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!

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