Hashtable and HashMap are two hash based collection in Java and used to
store objects as key value pair. Despite being hash based and similar in functionality there are significant difference between Hashtable and HashMap and without understanding those difference if you use Hashtable in place of HashMap than you may run into series of subtle programs which is hard to
find and debug.Unlike Difference between ArrayList and HashMap, Difference between Hashtable and HashMap are more subtle because both are similar kind of collection. Before seeing difference between HashMap and Hashtable let's see some common things between HashMap and Hashtable in Java.
Similarities between Hashtable and HashMap in Java
There are lot of similar things between Hashtable and HashMap in Java which is good to know and these also helps to
find exactly what is different between HashMap and Hashtable in Java:
1) Both Hashtable and HashMap implements java.util.Map interface.
2) Hashtable and HashMap both are hash based collection and works on principle of hashing.
3) Hashtable and HashMap both provide constant time performance for put and get method if objects are distributed uniformly across bucket.
4) From JDK 4 both Hashtableand HashMap are part of Java collection framework.
1) First and most significant different between Hashtable and HashMapis that, HashMap is not thread-safe while Hashtable is a thread-safe collection.
2) Second important difference between Hashtable and HashMap is performance, since HashMap is not synchronized it perform better than Hashtable.
3) Third difference on Hashtable vs HashMap is that Hashtable is obsolete class and you should be using ConcurrentHashMap in place of Hashtable in Java.
These were some important difference on Hashtable and HashMap in Java. If you know any other difference which is not included here than feel free to add them in comment section. Remember this is an important question on Java interview and good to prepare it well.
Similarities between Hashtable and HashMap in Java
![What is Difference between HashMap and Hashtable in Java Collection](http://2.bp.blogspot.com/-OQ_wj5FWmqY/UC-TYphU4pI/AAAAAAAAAds/jUe8AnHTiSo/s1600/50x50.gif)
1) Both Hashtable and HashMap implements java.util.Map interface.
2) Hashtable and HashMap both are hash based collection and works on principle of hashing.
3) Hashtable and HashMap both provide constant time performance for put and get method if objects are distributed uniformly across bucket.
4) From JDK 4 both Hashtableand HashMap are part of Java collection framework.
Difference between Hashtable and HashMap in Java
Despite being so similar there are some differences between Hashtable and HashMap in Java which separates them completely, let's have a look :1) First and most significant different between Hashtable and HashMapis that, HashMap is not thread-safe while Hashtable is a thread-safe collection.
2) Second important difference between Hashtable and HashMap is performance, since HashMap is not synchronized it perform better than Hashtable.
3) Third difference on Hashtable vs HashMap is that Hashtable is obsolete class and you should be using ConcurrentHashMap in place of Hashtable in Java.
These were some important difference on Hashtable and HashMap in Java. If you know any other difference which is not included here than feel free to add them in comment section. Remember this is an important question on Java interview and good to prepare it well.