Sobes.tech
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 :

  1. Le code de hachage de la clé est calculé à l’aide de hashCode().
  2. Le code de hachage est transformé en un indice du tableau de buckets (généralement via l’opération hash & (capacity - 1)).
  3. Dans le bucket choisi, on recherche l’élément avec la clé égale à celle recherchée (comparaison via equals()).
  4. 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.