Why we need ConcurrentHashMap when we already had Hashtable ?
Hashtable provides concurrent access to the Map.Entries objects by locking the entire map to perform any sort of operation (update,delete,read,create).
ConcurrentHashMap class is fully interoperable with Hashtable in programs that rely on its thread safety but not on its synchronization details. So the main purpose of this class is to provide the same functionality as of Hashtable but with a performance comparable to HashMap.
For detail explanation refer to : http://javahungry.blogspot.com/2015/02/how-concurrenthashmap-works-in-java-internal-implementation.html