ConcurrentHashMap and Hashtable in Java
hashmap, hashtable, java
Solution
`ConcurrentHashMap` uses multiple buckets to store data. This avoids read locks and greatly improves performance over a `HashTable`. Both are thread safe, but there are obvious performance wins with `ConcurrentHashMap`.
When you read from a `ConcurrentHashMap` using `get()`, there are no locks, contrary to the `HashTable` for which all operations are simply synchronized. `HashTable` was released in old versions of Java whereas `ConcurrentHashMap` is a java 5+ thing.
`HashMap` is the best thing to use in a single threaded application.
Problem
What is the difference between a ConcurrentHashMap and a Hashtable in Java? Which is more efficient for threaded applications?