Sobes.tech
Junior — Middle

Pouvez-vous expliquer la structure interne et le mécanisme de fonctionnement de la table de hachage en Java?

sobes.tech IA

Réponse de l'IA

Une table de hachage en Java (par exemple, HashMap) est une structure de données qui stocke des paires clé-valeur et offre un accès rapide par la clé.

Structure interne :

  • La base est un tableau de buckets (casiers).
  • Chaque bucket contient soit null, soit une liste chaînée (ou un arbre, si beaucoup d'éléments) d'éléments avec le même code de hachage modulo la taille du tableau.

Mécanisme de fonctionnement :

  1. Lors de l'ajout d'un élément, le code de hachage de la clé est calculé et l'indice du bucket est déterminé.
  2. Si le bucket est vide, l'élément y est placé.
  3. Si le bucket est occupé, une recherche est effectuée dans la liste chaînée (ou l'arbre) pour vérifier si la clé existe déjà :
    • Si la clé est trouvée, la valeur est mise à jour.
    • Sinon, l'élément est ajouté à la liste.
  4. Lorsqu'un seuil de remplissage est atteint, le tableau est agrandi (rehash) pour maintenir la performance.

Cette approche assure une complexité moyenne proche de O(1) pour les opérations d'insertion, de recherche et de suppression.

Exemple d'utilisation :

Map<String, Integer> map = new HashMap<>();
map.put("key1", 100);
Integer value = map.get("key1"); // accès rapide par clé