Difference between HashMap and HashTable

Key Difference: In computer science, a hashTable or a hashMap refers to a data structure that links keys (names) with values (attributes). In Java, there are some important differences between the two like: HashTable is synchronized and HashMap is unsynchronized. A HashTable does not allow null keys. However, a HashMap allows a single null key and any number of null values.

HashMap and hashTable are data structures that are parts of the Java collection. They use key-value pairs in order to store objects. They both share some similarities, such as both implement java.util.Map interface and both work on the principle of hashing. However, when we refer to them in context to the Java programming language, there are numerous differences between the two.

A hashTable is used to store and retrieve a value by using a key. For this purpose, the key must be unique. The table that is used to store the key and value pairs is known as a hash table. A hash table is formed by using an algorithm that hashes the keys. This hash function is used to assign numbers to the input data, and then the data is stored as the array index which corresponds to the calculated or evaluated number.

Like a hashTable, a hashMap also works on the same principles of hashing. It can be considered as a hash table based implementation of the Map interface. However, it differs from the hashTable on few points. HashMap is unsynchronized, whereas hashTable is synchronized. Synchronization means that at a particle time, only one thread is able to modify the table. Thus, to perform an update operation on the hashTable, a lock must be acquired on the table. For that particular time, the other threads have to wait. After the unlocking, the other threads may proceed and work on the table. Another major difference between the two is that hashTable does not allow a null key. However, hashMap allows a single null key and any number of null values.

Comparison between HashMap and HashTable:





It is non synchronized

It is synchronized (thread safe)

Null Values

It permits null values as key and value

It does not permit nulls

Introduction in java

Java version 1.2

First version of java development kit


Comparatively better

Comparatively poor


It extends AbstractMap class

It extends Dictionary class which is quite old

Iteration of keys

Iterator is used for iterating the keys

Enumeration interface is used for iterating keys


Better for non-threaded applications

Generally, safe for multithreaded applications


Not serialized



One can use concurrent hashMap for multi-thread environment

No such alternative

Image Courtesy: wikipedia.org, way2java.com

Most Searched in Education and References Most Searched in Health
Most Searched in Food and Drink Most Searched in Society and Culture
High Blood Pressure vs Low Blood Pressure
Alcohol Abuse vs Alcohol Dependence
4G vs LTE

Add new comment

Plain text

This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.