Classe Hashtable Java
Hashtable fait partie du java.util d'origine et est une implémentation concrète d'un Dictionary.
Cependant, la Hashtable refactorisée dans Java 2 implémente l'interface Map, donc Hashtable est maintenant intégrée au framework des collections. Elle est très similaire à la classe HashMap, mais elle prend en charge la synchronisation.
Comme HashMap, Hashtable stocke des paires clé/valeur dans une table de hachage. Lorsque vous utilisez une table de hachage, vous spécifiez l'objet à utiliser comme clé, et la valeur à associer à cette clé.
Ensuite, la clé est hachée, et le code de hachage résultant est utilisé comme index de la valeur stockée dans la table.
Hashtable définit quatre constructeurs. Le premier est le constructeur par défaut :
Hashtable()
Le deuxième constructeur crée une table de hachage avec la taille spécifiée :
Hashtable(int size)
Le troisième constructeur crée une table de hachage avec la taille spécifiée et spécifie le taux de remplissage via fillRatio.
Le taux de remplissage doit être compris entre 0.0 et 1.0, et il détermine à quel point la table de hachage peut être remplie avant d'être redimensionnée :
Hashtable(int size,float fillRatio)
Le quatrième constructeur crée une table de hachage initialisée avec les éléments de M.
La capacité de la table de hachage est fixée à deux fois la taille de M.
Hashtable(Map m)
En plus des méthodes définies dans l'interface Map, Hashtable définit les méthodes suivantes :
| Non. | Description de la méthode |
|---|---|
| 1 |
void clear( ) Vide cette table de hachage afin qu'elle ne contienne aucune clé. |
| 2 |
Object clone( ) Crée une copie superficielle de cette table de hachage. |
| 3 |
boolean contains(Object value) Vérifie si une clé est associée à la valeur spécifiée dans cette table de hachage. |
| 4 |
boolean containsKey(Object key) Vérifie si l'objet spécifié est une clé dans cette table de hachage. |
| 5 |
boolean containsValue(Object value) Renvoie true si ce Hashtable associe une ou plusieurs clés à cette valeur. |
| 6 |
Enumeration elements( ) Renvoie une énumération des valeurs de cette table de hachage. |
| 7 |
Object get(Object key) Renvoie la valeur à laquelle la clé spécifiée est associée, ou null si cette table ne contient aucune correspondance pour la clé. Plus précisément, si cette table contient une correspondance de la clé k vers la valeur v qui satisfait (key.equals(k)), alors cette méthode renvoie v ; sinon, elle renvoie null. |
| 8 |
boolean isEmpty( ) Teste si cette table de hachage n'a aucune clé associée à des valeurs. |
| 9 |
Enumeration keys( ) Renvoie une énumération des clés de cette table de hachage. |
| 10 |
Object put(Object key, Object value) Associe la clé spécifiée à la valeur spécifiée dans cette table de hachage. |
| 11 |
void rehash( ) Augmente la capacité de cette table de hachage et la réorganise en interne afin que ses éléments puissent être contenus et consultés plus efficacement. |
| 12 |
Object remove(Object key) Supprime la clé et sa valeur correspondante de la table de hachage. |
| 13 |
int size( ) Renvoie le nombre de clés de cette table de hachage. |
| 14 |
String toString( ) Renvoie une représentation sous forme de chaîne de cet objet Hashtable, qui est un ensemble d'entrées entourées d'accolades et séparées par les caractères ASCII ', ' (virgule et espace). |
Exemple
Le programme suivant illustre plusieurs méthodes prises en charge par cette structure de données :
import java.util.*;
public class HashTableDemo {
public static void main(String args[]) {
// Create a hash map
Hashtable balance = new Hashtable();
Enumeration names;
String str;
double bal;
balance.put("Zara", new Double(3434.34));
balance.put("Mahnaz", new Double(123.22));
balance.put("Ayan", new Double(1378.00));
balance.put("Daisy", new Double(99.22));
balance.put("Qadir", new Double(-19.08));
// Show all balances in hash table.
names = balance.keys();
while(names.hasMoreElements()) {
str = (String) names.nextElement();
System.out.println(str + ": " +
balance.get(str));
}
System.out.println();
// Deposit 1,000 into Zara's account
bal = ((Double)balance.get("Zara")).doubleValue();
balance.put("Zara", new Double(bal+1000));
System.out.println("Zara's new balance: " +
balance.get("Zara"));
}
}
Le résultat de la compilation et de l'exécution de l'exemple ci-dessus est le suivant :
Qadir: -19.08 Zara: 3434.34 Mahnaz: 123.22 Daisy: 99.22 Ayan: 1378.0 Zara's new balance: 4434.34
Autres extensions
Structures de données Java