In last post we saw difference between a HashMap and a Hashtable. Let us now see what Hashtable is and how do we use it.
If you see the source code implementation of Hashtable it is similar to that of map. Infact Hashtable implements Map interface.As of the Java 2 platform v1.2, this class was retrofitted to implement the
public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, java.io.Serializable {...
Lets see how can we use Hashtable.
If you see the source code implementation of Hashtable it is similar to that of map. Infact Hashtable implements Map interface.As of the Java 2 platform v1.2, this class was retrofitted to implement the
Map
interface, making it a member of the
Java Collections Framework. For more information refer to Hashtable JavaDocs.public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, java.io.Serializable {...
Lets see how can we use Hashtable.
Code :
package testCodes; import java.util.Enumeration; import java.util.Hashtable; public class HashtableDemo { public static void main(String args[]) { Hashtable<String, String> hashTable = new Hashtable<String, String>(); //Populating Hashtable hashTable.put("Name", "John"); hashTable.put("Country", "USA"); hashTable.put("Gender", "Male"); //Printing whole table System.out.println("hashTable : " + hashTable); //printing individual values Enumeration<String> data = hashTable.keys(); while(data.hasMoreElements()) { String str = (String) data.nextElement(); System.out.println(str + " : " + hashTable.get(str)); } } }
Output :
Understanding the code :
Code is very much similar to HashMap usage but has slight variations. Note Hashtable is a class and not an Interface. put() and get() method remain the same as that of HashMap. What is different is the concept of Enumeration. As specified earlier when Hashtable was introduced there was no Collections and hence no iterators. What we had to use was Enumeration. Enumeration is similar to Iterator. We check whether it has more elements using hasMoreElements() function, if yes access the next element using nextElement() function. Note the use of generics remain the same.
Few very common differences between a HashMap and a Hashtable are -
Few very common differences between a HashMap and a Hashtable are -
- Hashtable is synchronized where as HashMap is not.
- Hashtable does not allow null keys or values whereas HashMap allows one null key and any number of null values.
- keys() method of Hashtable return Enumeration where as keySet() method of HashTable returns a Set which can be iterated over as it implements Iterable interface - Enumeration does not.