The Hashtable class implements a hash table, which maps keys to values. Any non-null object can be used as a key or as a value. To successfully store and retrieve objects from a hashtable, the objects used as keys must implement the hashCode method and the equals method.
To implement Hashtable API first, we create a class “Hashtable” and create all the methods of the Hashtable in this class:
Java
// Java program to implement the hashTable API import java.util.*; import java.util.Map.Entry; class HashTableImplementation<K, V> { private Hashtable<K, V> hashTable; // Constructor creates a new HashTable public HashTableImplementation() { hashTable = new Hashtable<K, V>(); } // Constructor creates a new empty Hashtable // according to the given Hashtable public HashTableImplementation(Map<? extends K, ? extends V> hashTable1) { hashTable = new Hashtable<K, V>(hashTable1); } // Removes all of the elements from the hashTable public void clear() { hashTable.clear(); } // Creates a shallow copy of the hashtable public Object clone() { return hashTable.clone(); } // Check whether the given Object contains in the hashTable public boolean contains(Object obj) { return hashTable.contains(obj); } // Returns true if the hashtable contains given value otherwise return false public boolean containsValue(Object val) { return hashTable.containsValue(val); } // Returns true if the hashTable contains given key otherwise return false public boolean containsKey(Object key) { return hashTable.containsKey(key); } // Returns an enumeration of the values in the hashtable public Enumeration<V> elements() { return hashTable.elements(); } // Returns a set of entry of hashTable public Set<Map.Entry<K, V>> entrySet() { return hashTable.entrySet(); } // Return true if hashTable equals to the given Object public boolean equals(Object obj) { return hashTable.equals(obj); } // Returns the value to which the specified key is mapped, // or null if the map contains no mapping for the key. public V get(Object key) { return hashTable.get(key); } // Returns the hash code value for the Map public int hashCode() { return hashTable.hashCode(); } // Check whether hashTable is empty or not public boolean isEmpty() { return hashTable.isEmpty(); } // Returns an enumeration of the keys in on the hashtable public Enumeration<K> keys() { return hashTable.keys(); } // Returns a Set view of the keys public Set<K> keySet() { return hashTable.keySet(); } // Maps the specified key to the specified value in this hashTable public V put(K key, V val) { return hashTable.put(key, val); } // Returns the number of keys in the hashtable public int size() { return hashTable.size(); } //Returns a string representation of the Hashtable objects in the form of String public String toString() { return hashTable.toString(); } // Removes the given key with the value from the hashTable public V remove(Object key) { return hashTable.remove(key); } // Returns a Collection view of the values public Collection<V> values() { return hashTable.values(); } } public class GFG{ public static void main(String[] arg) { HashTableImplementation<String, Integer> hashTable = new HashTableImplementation<>(); // Add elements to hashTable hashTable.put( "Nikhil" , 390 ); hashTable.put( "Akshay" , 280 ); hashTable.put( "Bina" , 500 ); hashTable.put( "Chintu" , 450 ); // Print the size of the hashTable System.out.println( "The size of the hashTable: " + hashTable.size()); // Iterate and print the EntrySet of the hashTable System.out.println( "Entry Set of the hashTable: " ); Set<Entry<String, Integer>> entrySet = hashTable.entrySet(); Iterator<Entry<String, Integer>> entry = entrySet.iterator(); while (entry.hasNext()) { System.out.println(entry.next() + " " ); } System.out.println(); // Iterate and print the keys of the hashTable System.out.println( "The keys of the HashTable: " ); Set<String> keySet = hashTable.keySet(); Iterator<String> it = keySet.iterator(); while (it.hasNext()) { System.out.print(it.next() + " " ); } System.out.println(); // Iterate and print the value of the hashTable System.out.println( "The values of the HashTable:" ); Collection<Integer> values = hashTable.values(); Iterator<Integer> itr = values.iterator(); while (itr.hasNext()) { System.out.print(itr.next() + " " ); } System.out.println(); // Print true if hashTable contains the key "Nikhil" System.out.println( "The hashTable contains Nikhil: " + hashTable.containsKey( "Nikhil" )); // Delete all the entrys hashTable.clear(); // Print size of the hashTable System.out.println( "The size of the hashTable: " + hashTable.size()); } } |
The size of the hashTable: 4 Entry Set of the hashTable: Chintu=450 Nikhil=390 Akshay=280 Bina=500 The keys of the HashTable: Chintu Nikhil Akshay Bina The values of the HashTable: 450 390 280 500 The hashTable contains Nikhil: true The size of the hashTable: 0