Differences between HashMap and HashTable in Java


Difference between HashMap and HashTable in Java 

HasMap HashTable
HashMap method is not Synchronized HashTable every method is synchronized
multiple thread can operates simultenously hence hashmap object is not thread safe At a time only one thread is allowed to operate an hashtable object hence it is threadsafe
thread are not required to wait hence relatively performance is high It increase waiting time of thread hence performance is slow
HashMap allows one null key and any number of null values Hashtable does not allow null keys or values otherwise we will get null pointer exception
introduce in 1.2 version & it is non-legacy introduce in 1.0 and it is legacy
We can make the HashMap as synchronized throughMap m = Collections.synchronizedMap(hashMap); Hashtable is internally synchronized and can’t be unsynchronized.
HashMap is traversed by Iterator. Hashtable is traversed by Enumerator and Iterator.
In HashMap implementation LinkedHashMap maintains the insertion order and TreeMap sorts the mappings based on the ascending order of keys Hashtable doesn’t guarantee any kind of order. It doesn’t maintain the mappings in any particular order
Iterator of the HashMap is a fail-fast and it throws ConcurrentModificationException if any other Thread modifies the map structurally by adding or removing any element except iterator’s own remove() method Enumerator for the Hashtable is not fail-fast.

 


 

Leave a Reply

Your email address will not be published. Required fields are marked *