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:

 

HashMap

HashTable

Synchronization

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

Performance

Comparatively better

Comparatively poor

Extends

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

Applications

Better for non-threaded applications

Generally, safe for multithreaded applications

Serialization

Not serialized

Serialized

Alternative

One can use concurrent hashMap for multi-thread environment

No such alternative

Image Courtesy: wikipedia.org, way2java.com

Most Searched in Beauty and Style Most Searched in Cars and Transportation
Most Searched in Business and Finance Most Searched in Computers and Internets
LED HDTV vs LCD HDTV
Samsung Galaxy S4 vs Nexus 4
Archaeologist vs Geologist
Ceramic vs Ionic Hair Dryer

Add new comment

Plain text

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