Sobes.tech
Junior — Middle

Comment l'organisation des éléments avec la même valeur de hachage est-elle réalisée dans HashMap?

sobes.tech IA

Réponse de l'IA

En Java, les éléments avec la même valeur de hachage (collisions) dans HashMap sont organisés sous forme de liste chaînée ou, à partir de Java 8, sous forme d'arbre équilibré (TreeNode) lorsqu'il y a beaucoup de collisions.

Lorsque plusieurs clés ont le même code de hachage, elles sont placées dans une "corbeille" (bucket). Initialement, tous les éléments dans la corbeille sont liés par une liste chaînée simple. Si le nombre d'éléments dans une corbeille dépasse un seuil déterminé (généralement 8), la liste est transformée en un arbre rouge-noir pour améliorer l'efficacité de la recherche.

Exemple de structure simplifiée :

static class Node<K,V> implements Map.Entry<K,V> {
    final int hash;
    final K key;
    V value;
    Node<K,V> next;
    // ...
}

Ainsi, en cas de collisions, HashMap recherche d'abord l'élément dans la liste ou dans l'arbre par la clé, en comparant les clés via equals().