Difference Between HashMap and HashTable
Points To Remember
- HashTable have the legacy code and were introduced before HashMaps.
- There is nothing in a HashTable that a HashMap cannot do except multithreading.
- ConcurrentHashMap is a replacement for HashTable, it a synchronized HashMap.
Differences : HashMap and HashTable
HashMap | HashTable |
---|---|
They implement Map Interface. | It extends Dictionary(obsolete from jdk 1.7) class and implements Map interface |
They are a part of Collections API | They are not a part of Collections API |
They allow a single null key and any number of null values. | They do not allow null values to be added. |
They are not synchronized or thread-safe | They are synchronized or thread-safe |
They use Iterator to iterate over objects | They use Enumeration to iterate over objects |
They are faster and uses less memory | They are comparatively slower. |
Similarities : HashMap and HashTable
- Both of them implements Map interface.
- Both HashMap and Hashtable works on the Principle of Hashing.
- Both HashMap and HashTable do not guarantee that the order of the map will remain constant over time.
I recommend not to use HashTable and use HashMap since HashMap is much faster than the HashTables and it allows you to do everything that a HashTable allows you to do. In case you are in need of using a Map in a multithreaded environment than you should go for ConcurrentHashMap. A ConcurrentHashMap provides all the functions of a HAshMap and it is also thread safe or simple multithreaded.
No comments: