Maison  >  Article  >  Java  >  Comment fonctionne HashTable en Java ?

Comment fonctionne HashTable en Java ?

王林
王林avant
2023-08-19 18:53:081107parcourir

Comment fonctionne HashTable en Java ?

La classe Hashtable fait partie du Java Collection Framework qui stocke son élément dans des paires clé-valeur dans une table de hachage. La clé est un objet qui peut être utilisé pour récupérer et recevoir la valeur qui lui est associée. quelques similitudes entre une Hashtable et une HashMapclass mais la table de hachage est synchronisée De plus, ses clés doivent être associées à des valeurs, elles ne peuvent pas être nulles. Cet article a pour but d'expliquer le fonctionnement interne de la table de hachage en Java.

.

Comment fonctionne Hashtable en Java

Nous pouvons considérer une table de hachage comme un tableau de compartiments, chaque compartiment contenant une liste d'entrées. Une entrée se compose d'une clé et d'une valeur. Nous spécifions une clé et les valeurs qui peuvent être associées à cette clé. La clé est ensuite hachée pour générer un code de hachage qui est ensuite utilisé comme index dans la table où la valeur est stockée. La fonction qui permet d'obtenir la position de la valeur à partir du code de hachage est appelée fonction de hachage. Il renvoie toujours une valeur entière positive appelée code de hachage. Plusieurs objets peuvent obtenir la même valeur entière après évaluation via une méthode intégrée appelée « equals() ». Cependant, les objets similaires ont toujours le même code de hachage.

Formule pour attribuer l'index

indexNumber = hashNumber % totalBuckets

Ici, « % » est l'opérateur modulo qui renvoie le reste

Donnons un exemple pour montrer l'utilisation de la formule ci-dessus -

Q Supposons que nous obtenions une valeur de hachage de 17 pour un élément nommé XYZ et que le total soit il y a 5 compartiments disponibles. Ensuite, recherchez sur quel numéro d'index il sera stocké ?

Solution − 17 % 5 = 2 Par conséquent, il obtiendra le numéro d'index 2.

Collision dans la table de hachage

Comme indiqué précédemment, plusieurs objets peuvent obtenir le même code de hachage, ce qui conduit à une situation appelée collision. Cela se produit lorsque deux clés ou plus ont la même valeur de hachage et sont mappées au même compartiment résultant avec des performances lentes. confusion fonctionnelle.

Syntaxe de déclaration de Hashtable

Hashtable<TypeOfKey, TypeOfValue> nameOfTable = new Hashtable<>();

Méthode

  • La première étape consiste à importer le package 'java.util' afin que nous puissions utiliser la classe Hashtable

  • Définissez une instance de la classe Hashtable et ajoutez-y des objets à l'aide d'un Méthode intégrée nommée 'put()'.

  • Maintenant, utilisez une boucle for-each et utilisez la méthode 'keySet()' à l'intérieur pour accéder à toutes les clés

  • La valeur associée à la clé.

Exemple 1

L'exemple suivant illustre comment nous pouvons implémenter une table de hachage en Java.

import java.util.*;
public class Table {
   public static void main(String[] args) {
      Hashtable<String, Integer> workers = new Hashtable<>();
      
      // Adding elements in the workers table
      workers.put("Vaibhav", 4000);
      workers.put("Ansh", 3000);
      workers.put("Vivek", 1500);
      workers.put("Aman", 2000);
      workers.put("Tapas", 2500);
      
      // printing details workers table
      System.out.println("Elements in the given table: ");
      for (String unKey : workers.keySet()) {
         System.out.println("Name: " + unKey + ", Salary: " + workers.get(unKey));
      }
   }
}

Sortie

Elements in the given table:
Name: Aman, Salary: 2000
Name: Ansh, Salary: 3000
Name: Tapas, Salary: 2500
Name: Vivek, Salary: 1500
Name: Vaibhav, Salary: 4000

Exemple 2

Dans l'exemple suivant, nous récupérerons les valeurs d'une table de hachage en utilisant la méthode intégrée 'get()'. Cette méthode accepte une clé et renvoie la valeur correspondante.

import java.util.*;
public class Table {
   public static void main(String[] args) {
      Hashtable<String, Integer> workers = new Hashtable<>();
      
      // Adding elements in the workers table
      workers.put("Vaibhav", 4000);
      workers.put("Ansh", 3000);
      workers.put("Vivek", 1500);
      workers.put("Aman", 2000);
      workers.put("Tapas", 2500);
      
      // printing details workers table one by one
      System.out.println("Value stored at key Ansh: " + workers.get("Ansh"));
      System.out.println("Value stored at key Vivek: " + workers.get("Vivek"));
      System.out.println("Value stored at key Aman: " + workers.get("Aman"));
   }
}

Sortie

Value stored at key Ansh: 3000
Value stored at key Vivek: 1500
Value stored at key Aman: 2000

Conclusion

Nous avons commencé cet article en définissant la classe Hashtable et dans la section suivante, nous avons expliqué son fonctionnement en interne à travers un exemple. Plus tard, nous avons discuté de l'implémentation pratique de Hashtable à travers des exemples de programmes Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer