Junior — Middle
Pouvez-vous expliquer comment accéder à un élément dans une structure HashMap?
sobes.tech IA
Réponse de l'IA
En Java, HashMap est implémenté sur la base d’un tableau de buckets, chacun contenant une liste chaînée ou un arbre (à partir de Java 8) d’éléments ayant le même code de hachage.
L’accès à un élément se fait comme suit :
- Le code de hachage de la clé est calculé à l’aide de
hashCode(). - Le code de hachage est transformé en un indice du tableau de buckets (généralement via l’opération
hash & (capacity - 1)). - Dans le bucket choisi, on recherche l’élément avec la clé égale à celle recherchée (comparaison via
equals()). - Si l’élément est trouvé, la valeur associée est renvoyée.
Exemple :
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // on calcule le hash, on choisit le bucket, on cherche l’élément
Ainsi, l’accès à un élément consiste à calculer le hash, choisir le bucket et rechercher par la clé à l’intérieur du bucket.