Thursday, April 21, 2016

Difference between Hash Map and Hash Table

HashMap Vs HashTable In Java:

HashMap
HashTable
HashMap is not synchronized and therefore it is not thread safe.
HashTable is internally synchronized and therefore it is thread safe.
HashMap allows maximum one null key and any number of null values.
HashTable doesn’t allow null keys and null values.
Iterators returned by the HashMap are fail-fast in nature.
Enumeration returned by the HashTable is fail-safe in nature.
HashMap extends AbstractMap class.
HashTable extends Dictionary class.
HashMap returns only iterators to traverse.
HashTable returns both Iterator as well as Enumeration for traversal.
HashMap is fast.
HashTable is slow.
HashMap is not a legacy class.
HashTable is a legacy class.
HashMap is preferred in single threaded applications. If you want to use HashMap in multi-threaded application, wrap it using Collections.synchronizedMap() method.
Although HashTable is there to use in multi-threaded applications, now a days it is not at all preferred. Because, ConcurrentHashMap is better option than HashTable.




Similarities Between HashMap And HashTable In Java :

1) Both store the data in the form of key-value pairs.
2) Both use Hashing technique to store the key-value pairs.
3) Both implement Map interface.
4) Both don’t maintain any order for elements.

5) Both give constant time performance for insertion and retrieval operations.

No comments:

Post a Comment