Sobes.tech
Junior — Middle

Que se passe-t-il à l'intérieur de HashMap lorsqu'une nouvelle paire clé-valeur est insérée?

sobes.tech IA

Réponse de l'IA

Lorsqu'une nouvelle paire clé-valeur est insérée dans un HashMap, voici ce qui se passe :

  1. Le code de hachage de la clé est calculé à l'aide de la méthode hashCode().
  2. Le code de hachage est transformé en un indice dans le tableau (backend HashMap — tableau de buckets) par une opération, par exemple, en prenant le reste par la taille du tableau ou un masque de bits.
  3. Si le bucket à cet indice ne contient pas d'éléments, une nouvelle entrée avec la clé et la valeur est créée.
  4. Si le bucket contient déjà des éléments (collision), une traversée de la chaîne (liste chaînée ou arbre, si beaucoup d'éléments) est effectuée pour vérifier si la clé existe déjà :
    • Si la clé est trouvée, la valeur est mise à jour.
    • Si la clé n'existe pas, une nouvelle entrée est ajoutée à la chaîne.
  5. Lorsqu'un seuil de remplissage (facteur de charge) est atteint, le tableau est agrandi et les éléments sont redistribués (rehash).

Exemple :

Map<String, Integer> map = new HashMap<>();
map.put("apple", 5); // Le hash("apple") est calculé, l'indice est déterminé, l'entrée est insérée