Maison > Java > javaDidacticiel > HashMap vs Map : quand devriez-vous utiliser lequel ?

HashMap vs Map : quand devriez-vous utiliser lequel ?

Mary-Kate Olsen
Libérer: 2024-11-19 04:55:03
original
443 Les gens l'ont consulté

HashMap vs. Map: When Should You Use Which?

Démystifier la distinction entre les objets HashMap et Map

En Java, les objets HashMap et Map semblent souvent interchangeables, ce qui suscite une confusion quant à leurs différences sous-jacentes . Pour clarifier, il n'y a pas de différence dans les objets eux-mêmes : dans les deux cas, vous obtenez un HashMap avec une clé String et une valeur Object.

La distinction réside dans l'interface que vous associez à l'objet. Lorsque vous déclarez l'objet sous la forme HashMap, vous spécifiez explicitement le type d'implémentation. En revanche, en le déclarant comme Map , vous définissez une interface plus générale, vous permettant de modifier l'implémentation sous-jacente sans rompre le contrat avec votre base de code.

Explorons un exemple pratique pour illustrer ce concept :

Considérons une classe nommée Foo qui initialise deux cartes internes, Things et moreThings, et les partage via des méthodes d'accès. Ces cartes sont initialement implémentées sous forme de HashMaps.

Maintenant, supposons qu'une sous-classe de Foo, SpecialFoo, utilise une méthode commune pour manipuler à la fois des choses et plus de choses. Cette méthode est définie avec la même interface que les méthodes d'accès (HashMap).

Plus tard, si vous décidez de remplacer l'implémentation HashMap dans Foo par TreeMap, SpecialFoo rencontrera une erreur de compilation car le contrat a été violé : Foo fournit désormais des TreeMaps au lieu de HashMaps. Cela nécessite une révision de SpecialFoo.

Pour éviter une telle situation, il est prudent de déclarer les méthodes d'accès et les cartes internes en utilisant l'interface générale, Map. Ce découplage vous permet de modifier l'implémentation sous-jacente sans affecter votre base de code.

Le codage vers l'interface la plus générale est généralement moins fragile et plus adaptable. En adhérant à ce principe, vous conservez la flexibilité et évitez les erreurs imprévues lors de la mise en œuvre des modifications de votre base de code.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal