In this article, we will discuss ConcurrentMap interface with all its important methods in detail
1. ConcurrentMap interface:
- To represent a group of key-value pairs as a single unit/entity, which is a thread-safe version of Map/HashMap
- That’s it allows simultaneous/concurrent access to read/modify Map object
- Map allows only unique keys to be inserted but it can have duplicate values against these unique keys
- Implementation class for ConcurrentMap interface is ConcurrentHashMap
- ConcurrentMap interface defines additional atomic methods, in addition to methods inherited from Map interface
- Present in java.util.concurrent package
- Extends java.util.Map interface
Source: Team BenchResources.Net
2. ConcurrentMap interface method:
ConcurrentMap method | Description |
Object putIfAbsent(Object key, Object value); | to add a new entry to ConcurrentMap, if the specified key isn’t present in the invoking Map |
boolean remove(Object key, Object value); | Removes an entry from invoking Map for the specified key-value pair combination |
boolean replace(Object key, Object oldValue, Object newValue); | replaces old value with new value for the specified key
Note: old key-value pair combination should be present |
boolean replace(Object key, Object value); | replaces the entry for a key only if currently mapped to some value |
Note :
- ConcurrentHashMap is implementation class of ConcurrentMap
- all properties will be inherited from ConcurrentMap to ConcurrentHashMap
3. Factors to consider while discussing any collection class
We should consider below factors while discussing any implementation class of collection framework or for that matter Map interface,
- Underlying data structure
- Duplicates are allowed or Not
- Insertion order is maintained or Not
- Whether NULL insertion is possible or Not
- If possible, how many NULL values can be inserted
- Whether collection class provide sorting, by default
- Is there any way to apply customized sorting
- Performance, while dealing with retrieval or manipulation (addition/deletion)
- By default, all methods are synchronized or Not
Related Articles:
- Java 5 – ConcurrentMap interface
- Java 5 – ConcurrentHashMap class with example
- Java 5 – ConcurrentHashMap with Read and Update operations simultaneously
- Java 5 – HashMap v/s ConcurrentHashMap
- Java 5 – ConcurrentHashMap v/s SynchronizedMap
- Java 5 – Concurrent Collection Interview question and answers
References:
- https://docs.oracle.com/javase/tutorial/collections/intro/
- https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html
- https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html
- https://docs.oracle.com/javase/tutorial/essential/concurrency/collections.html
- https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html
Happy Coding !!
Happy Learning !!