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