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 :
- Le code de hachage de la clé est calculé à l'aide de la méthode
hashCode(). - 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.
- Si le bucket à cet indice ne contient pas d'éléments, une nouvelle entrée avec la clé et la valeur est créée.
- 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.
- 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