Maison  >  Article  >  Java  >  Table de hachage en Java

Table de hachage en Java

WBOY
WBOYoriginal
2024-08-30 15:47:42990parcourir

En Java, Hashtable est utilisé pour stocker des paires clé-valeur qui mappent chaque clé à certaines valeurs. Il est synchronisé, contrairement au HashMap. De plus, Hashtable n'autorise pas les valeurs nulles ou les clés nulles et contient également des éléments uniques. Comme déjà dit, la table de hachage contient une clé qui est hachée et obtient un code de hachage. Ensuite, ce code sera utilisé comme index où la valeur particulière sera stockée.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Déclaration de table de hachage :

La classe Hashtable peut être déclarée en utilisant la syntaxe ci-dessous.

public class Hashtable<Key,Value> extends Dictionary<Key,Value> implements Map<Key,Value>, Cloneable, Serializable

Constructeurs de table de hachage

Une table de hachage peut être créée à l'aide de constructeurs paramétrés et non paramétrés.

  • Hashtable() : Une nouvelle table de hachage, ainsi qu'une table de hachage vide, seront construites avec un facteur de charge de 0,75 et une capacité initiale de 11. Ici, la capacité initiale et le facteur de charge sont la valeur par défaut.
  • Table de hachage (int initCapacity) : Une nouvelle table de hachage, ainsi qu'une table de hachage vide, seront construites avec une capacité initiale et un facteur de charge mentionnés de 0,75. Ici, seul le facteur de charge est la valeur par défaut.
  • Table de hachage (int initCapacity, float loadfact) : Une nouvelle table de hachage, ainsi qu'une table de hachage vide, seront construites avec la capacité initiale et le facteur de charge mentionnés.
  • Table de hachage (Map t) : Une nouvelle table de hachage sera construite avec des mappages identiques à ceux de la carte mentionnée.

Méthodes de table de hachage

Voici les méthodes couramment utilisées dans HashTable.

  • clear() : Cette table de hachage sera effacée sans qu'il ne reste aucune clé.
  • contains(Object val ) : Cette méthode teste si une clé est mappée dans la valeur val dans la table de hachage.
  • clone() : Une copie superficielle sera créée pour la table de hachage.
  • contientKey(Object k ) : Cette méthode teste si la clé k spécifiée est disponible dans la table de hachage.
  • contient une valeur (Object val ) : Si la table de hachage mappe 1 ou plusieurs clés à la valeur val mentionnée, true sera renvoyé.
  • elements() : L'énumération de la valeur sera renvoyée.
  • keys() : L'énumération de la clé sera renvoyée.
  • entrySet() : Une vue définie sera renvoyée pour les mappages présents sur la carte.
  • est égal à(Objet o) : Une carte sera comparée à l'objet spécifié.
  • get(Objectkey) : Si la clé spécifiée est mappée dans une valeur, elle sera renvoyée. Si rien n'est mappé, null sera renvoyé.
  • isEmpty() : Cette méthode vérifie si la table de hachage ne mappe les clés à aucune valeur.
  • keySet() : Une vue définie sera renvoyée pour les clés présentes dans la carte.
  • size() : Le nombre de clés dans la table de hachage sera renvoyé.
  • hashCode() : La valeur du code de hachage sera renvoyée pour la carte.
  • mettre(clé, Vvaleur al) : Clé k sera mappé à la valeur val dans la table de hachage.
  • putAll(CarteKey,? étend Val> t): Les mappages seront copiés de la carte mentionnée vers la table de hachage.
  • supprimer(Objet k) : La clé k et la valeur correspondante seront supprimées du tableau.
  • values() : Une vue de collection sera renvoyée pour les valeurs présentes dans la carte.

Exemples d'implémentation Hashtable en Java

Chaque structure de données a ses propres fonctionnalités spéciales.

Vous trouverez ci-dessous des exemples d'implémentation de table de hachage en Java.

Exemple n°1

Programme Java pour ajouter des clés et des valeurs à la table de hachage.

Code :

//Java program to add keys and values to the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable htbl = new Hashtable();
//create an enumeration enm
Enumeration enm;
//create sing s
String s;
//create a double variable balance
double balance;
//add keys and values to the table
htbl.put(" A ", new Double(3500.50));
htbl.put(" B ", new Double(2900.00));
htbl.put(" C ", new Double(3600.00));
htbl.put(" D ", new Double(4550.50));
htbl.put(" E ", new Double(2345.67));
// Store all the keys in the enumeration enm
enm = htbl.keys();
//if more elements are present in the enm, enter this loop
while(enm.hasMoreElements()) {
s = (String) enm.nextElement();
System.out.println(s + ": " + htbl.get(s));
}
System.out.println();
// Add 1000 to value of Key A
balance = ((Double)htbl.get(" A ")).doubleValue();
htbl.put(" A ", new Double(balance + 1000));
System.out.println(" A's new balance : " + htbl.get(" A "));
}
}

Sortie :

Les valeurs de A, B, C, D et E seront affichées lors de l'exécution du code. De plus, le nouveau solde de A sera également affiché, comme indiqué ci-dessous.

Table de hachage en Java

Exemple n°2

Programme Java pour supprimer les clés et les valeurs de la table de hachage.

Code:

//Java program to remove keys and values from the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable<Integer,String> htbl = new Hashtable<Integer,String>();
//add keys and values to the table
htbl.put(1,"29");
htbl.put(2,"30");
htbl.put(3,"31");
htbl.put(4,"32");
htbl.put(5,"33");
htbl.put(6,"34");
htbl.put(7,"35");
System.out.println("Hashtable before removing values: "+ htbl);
// Remove 6 and 3
htbl.remove(6);
htbl.remove(3);
System.out.println("Hashtable after removing values : "+ htbl);
}
}

Output:

Table de hachage en Java

In this program, values of 1, 2, 3, 4, 5, 6 and 7 will be displayed on executing the code. Then the values of 6 and 3 will be removed and display the rest of the values.

Example #3

Java program to get keys and values from the hashtable.

Code:

//Java program to get keys and values from the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable<Integer,String> htbl = new Hashtable<Integer,String>();
//add keys and values to the table
htbl.put(1,"29");
htbl.put(2,"30");
htbl.put(3,"31");
htbl.put(4,"32");
htbl.put(5,"33");
htbl.put(6,"34");
htbl.put(7,"35");
System.out.println("Hashtable : "+ htbl);
//if value of 3 is present, then return it else print Null
System.out.println(htbl.getOrDefault(3, "Null"));
//if value of 8 is present, then return it else print Null
System.out.println(htbl.getOrDefault(8, "Null"));
}
}

Output:

Table de hachage en Java

In this program also, values of 1, 2, 3, 4, 5, 6 and 7 will be displayed on executing the code. Then, the values for keys 3 and 8 will be retrieved using the method getOrDefault(). Since the value of 8 is not available, null will be returned in the second getOrDefault() method.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Flux de collecte JavaArticle suivant:Flux de collecte Java