La classe Java Hashtable implémente une table de hachage, qui mappe les clés aux valeurs. Il hérite de la classe Dictionary et implémente l'interface Map.
Points à retenir
- Une table de hachage est un tableau d'une liste. Chaque liste est appelée compartiment. La position du bucket est identifiée en appelant la méthode hashcode(). Une table de hachage contient des valeurs basées sur la clé.
- La classe Java Hashtable contient des éléments uniques.
- La classe Java Hashtable n'autorise pas les clés ou valeurs nulles.
- La classe Java Hashtable est synchronisée.
- La capacité initiale par défaut de la classe Hashtable est de 11 alors que loadFactor est de 0,75.
Déclaration de classe de table de hachage
Voyons la déclaration de la classe java.util.Hashtable.
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
Paramètres de classe de table de hachage
Voyons les paramètres de la classe java.util.Hashtable.
Constructeurs de classe Java Hashtable
Constructeur | Description |
---|---|
Table de hachage() | Il crée une table de hachage vide ayant la capacité et le facteur de charge par défaut initiaux. |
Table de hachage (capacité entière) | Il accepte un paramètre entier et crée une table de hachage contenant une capacité initiale spécifiée. |
Table de hachage (capacité int, float loadFactor) | Il est utilisé pour créer une table de hachage ayant la capacité initiale et le loadFactor spécifiés. |
Table de hachage (Carte t) | Il crée une nouvelle table de hachage avec les mêmes mappages que la carte donnée. |
Méthodes de la classe Java Hashtable
Méthode | Description |
---|---|
vide clair() | Il est utilisé pour réinitialiser la table de hachage. |
Clone d'objet() | Il renvoie une copie superficielle de la table de hachage. |
Calcul V (touche K, fonction de remappage BiFunction) | Il est utilisé pour calculer un mappage pour la clé spécifiée et sa valeur mappée actuelle (ou null s'il n'y a pas de mappage actuel). |
V computingIfAbsent (clé K, fonction mappingFunction) | Il est utilisé pour calculer sa valeur à l'aide de la fonction de mappage donnée, si la clé spécifiée n'est pas déjà associée à une valeur (ou est mappée à null), et l'entre dans cette carte sauf si null. |
V computingIfPresent (touche K, fonction de remapping BiFunction) | Il est utilisé pour calculer un nouveau mappage en fonction de la clé et de sa valeur mappée actuelle si la valeur de la clé spécifiée est présente et non nulle. |
Éléments d'énumération() | Il renvoie une énumération des valeurs dans la table de hachage. |
Ensemble | Il renvoie une vue définie des mappages contenus dans la carte. |
booléen égal (Objet o) | Il est utilisé pour comparer l'objet spécifié avec la carte. |
void forEach (action BiConsumer) | Il exécute l'action donnée pour chaque entrée de la carte jusqu'à ce que toutes les entrées aient été traitées ou que l'action lève une exception. |
V getOrDefault (clé objet, V valeur par défaut) | Il renvoie la valeur à laquelle la clé spécifiée est mappée, ou defaultValue si la carte ne contient aucun mappage pour la clé. |
int hashCode() | Il renvoie la valeur du code de hachage pour la carte |
Clés d'énumération() | Il renvoie une énumération des clés dans la table de hachage. |
Définir keySet() | Il renvoie une vue Set des clés contenues dans la carte. |
Fusion V (clé K, valeur V, fonction de remappage BiFunction) | Si la clé spécifiée n'est pas déjà associée à une valeur ou est associée à null, l'associe à la valeur non nulle donnée. |
V put (clé K, valeur V) | Il insère la valeur spécifiée avec la clé spécifiée dans la table de hachage. |
void putAll (Carte t)) | Il est utilisé pour copier toutes les paires clé-valeur de la carte vers la table de hachage. |
V putIfAbsent (clé K, valeur V) | Si la clé spécifiée n'est pas déjà associée à une valeur (ou est mappée à null), l'associe à la valeur donnée et renvoie null, sinon renvoie la valeur actuelle. |
booléen supprimer (clé d'objet, valeur d'objet) | Il supprime les valeurs spécifiées avec les clés spécifiées associées de la table de hachage. |
V remplacer (clé K, valeur V) | Il remplace la valeur spécifiée pour une clé spécifiée. |
remplacement booléen (touche K, V oldValue, V newValue) | Il remplace l'ancienne valeur par la nouvelle valeur pour une clé spécifiée. |
void replaceAll (fonction BiFunction) | Il remplace la valeur de chaque entrée par le résultat de l'appel de la fonction donnée sur cette entrée jusqu'à ce que toutes les entrées aient été traitées ou que la fonction lève une exception. |
Chaîne versChaîne() | Il renvoie une représentation sous forme de chaîne de l'objet Hashtable. |
Valeurs de collection() | Il renvoie une vue de collection des valeurs contenues dans la carte. |
booléen contient (valeur de l'objet) | Cette méthode renvoie vrai si une valeur égale à la valeur existe dans la table de hachage, sinon renvoie faux. |
booléen containValue (valeur de l'objet) | Cette méthode renvoie vrai si une valeur égale à la valeur existe dans la table de hachage, sinon renvoie faux. |
booléen containKey (clé d'objet) | Cette méthode renvoie vrai si une clé égale à la clé existe dans la table de hachage, sinon renvoie faux. |
booléen isEmpty() | Cette méthode renvoie true si la table de hachage est vide ; renvoie false s'il contient au moins une clé. |
rehash vide protégé() | Il est utilisé pour augmenter la taille de la table de hachage et ressasser toutes ses clés. |
V obtenir (clé d'objet) | Cette méthode renvoie l'objet qui contient la valeur associée à la clé. |
V supprimer (clé objet) | Il est utilisé pour supprimer la clé et sa valeur. Cette méthode renvoie la valeur associée à la clé. |
taille int() | Cette méthode renvoie le nombre d'entrées dans la table de hachage. |
Exemple de table de hachage Java
import java.util.*; class Hashtable1{ public static void main(String args[]){ Hashtable hm=new Hashtable(); hm.put(100,'Amit'); hm.put(102,'Ravi'); hm.put(101,'Vijay'); hm.put(103,'Rahul'); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }Testez-le maintenant
Sortir:
103 Rahul 102 Ravi 101 Vijay 100 Amit
Exemple de table de hachage Java : remove()
import java.util.*; public class Hashtable2 { public static void main(String args[]) { Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before remove: '+ map); // Remove value for key 102 map.remove(102); System.out.println('After remove: '+ map); } }
Sortir:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
Exemple de table de hachage Java : getOrDefault()
import java.util.*; class Hashtable3{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Here, we specify the if and else statement as arguments of the method System.out.println(map.getOrDefault(101, 'Not Found')); System.out.println(map.getOrDefault(105, 'Not Found')); } }
Sortir:
Vijay Not Found
Exemple de table de hachage Java : putIfAbsent()
import java.util.*; class Hashtable4{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Initial Map: '+map); //Inserts, as the specified pair is unique map.putIfAbsent(104,'Gaurav'); System.out.println('Updated Map: '+map); //Returns the current value, as the specified pair already exist map.putIfAbsent(101,'Vijay'); System.out.println('Updated Map: '+map); } }
Sortir:
Initial Map: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit}
Exemple de table de hachage Java : livre
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashtableExample { public static void main(String[] args) { //Creating map of Books Map map=new Hashtable(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Sortir:
3 Details: 103 Operating System Galvin Wiley 6 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 1 Details: 101 Let us C Yashwant Kanetkar BPB 8