The Hashtable class implements a hash table data structure. A hash table indexes and stores objects in a dictionary using hash codes as the objects keys. Hash codes are integer values that identify objects. All different objects are assigned different hash values and therefore different dictionary keys.
The Object class implements the hashCode() method. This method allows the hash code of an arbitrary Java object to be calculated. All Java classes and objects inherit this method from Object. The hashCode() method is used to compute the hash code key for storing objects within a hash table. Object also implements the equals() method which is used to determine whether two objects with the same hash code are equal.
The Java Hashtable class is very similar to the Dictionary class from which it is derived. Objects are added to a hash table as key-value pairs. The object used as the key is hashed, using its hashCode() method, and the hash code is used as the actual key for the value object. When an object is to be retrieved from a hash table, using a key, the key’s hash code is computed and used to find the object.
Hashtable class provides following constructors.
Hashtable()
Hashtable(int s)
Hashtable(int s, float If)
Hashtable(Map m)
The first constructor creates a hash table of default size and with default load factor. The second constructor creates a hash table of specified size but with default load factor. The third constructor allows a hash table to be created with a specific initial capacity and load factor. The load factor is a float value between 0.0 and 1.0 which specifies the percentage of hash table which if full, hash table will be resized. For example, suppose a hash table is created with a capacity of 100 entries and a 0.70 load factor. When the hash table is 70 percent full, anew, larger hash table will be created. The default load factor is 0.75
The fourth constructor creates a hash table that is initialised with the element m and the capacity of the hash table is set to twice the number of elements in m. The access methods defined for the Hashtable class allow key-value pairs to be added to and removed from a hash table, search the hash table for a particular key or object value, create an enumeration of the table’s keys and values, determine the size of the hash table, and recalculate the hash table, as needed. Many of these methods are inherited or overridden from the Dictionary class.
import java.lang.System;
import java.util.Hashtable;
import java.util.Enumeration;
public class HashtableJavaExample
{
public static void main(String args[])
{
Hashtable h= new Hashtable();
h.put("Rajsthan","Jaipur");
h.put("Tamilnadu","Chennai");
h.put("MP","Bhopal");
h.put("Gujrat","Gandhinagar");
System.out.println("h: "+h);
Enumeration e = h.keys();
System.out.print("keys: ");
while (e.hasMoreElements())
System.out.print(e.nextElement()+”, “);
System.out.print(“\nElements: “);
e = h.elements();
while (e.hasMoreElements())
System.out.print(e.nextElement()+”, “);
System.out.println( );
System.out.println(“Capital of Tamilnadu is “+h.get(“Tamilnadu”));
System.out.println(“Capital of MP is “+h.get(“MP”));
System.out.println(“Capital of Gujrat is “+h.get(“Gujrat”));
}
}