java tutorial - Difference between HashMap and Hashtable - java programming - learn java - java basics - java for beginners

HashMap and Hashtable both are used to store data in key and value form. Both are using hashing technique to store unique keys.

  • But there are many differences between HashMap and Hashtable classes that are given below.
1) HashMap is non synchronized.
It is not-thread safe and can't be shared
between many threads without proper synchronization code.
Hashtable is synchronized. It is thread-safe and can be shared with many threads.
2) HashMap allows one null key and multiple null values.Hashtable doesn't allow any null key or value.
3) HashMap is a new class introduced in JDK 1.2.Hashtable is a legacy class.
4) HashMap is fast.Hashtable is slow.
5) We can make the HashMap as synchronized by calling this code
Map m = Collections.synchronizedMap(hashMap);
Hashtable is internally synchronized and can't be unsynchronized.
6) HashMap is traversed by Iterator.Hashtable is traversed by Enumerator and Iterator.
7) Iterator in HashMap is fail-fast.Enumerator in Hashtable is not fail-fast.
8) HashMap inherits AbstractMap class.Hashtable inherits Dictionary class.

Related Searches to Difference between HashMap and Hashtable