ConcurrentHashMap putIfAbsent() Method in Java
Last Updated :
17 Sep, 2018
The
java.util.concurrent.ConcurrentHashMap.putIfAbsent() is an in-built function in Java which accepts a key and a value as parameters and maps them if the specified key is not mapped to any value.
Syntax:
chm.putIfAbsent(key_elem, val_elem)
Parameters: The function accepts two parameters which are described below:
- key_elem: This parameter specifies the key to which the specified val_elem is to be mapped if key_elem is not associated with any value.
- val_elem: This parameter specifies the value to be mapped to the specified key_elem.
Return Value: The function returns the existing value mapped to the key and returns null if no value is previously mapped to the key.
Exception: The function throws
NullPointerException when the specified parameters are null.
Below programs illustrate the ConcurrentHashMap.putIfAbsent() method :
Program 1: An existing key is passed as parameter to the function.
Java
// Java Program Demonstrate putIfAbsent()
// method of ConcurrentHashMap
import java.util.concurrent.*;
class ConcurrentHashMapDemo {
public static void main(String[] args)
{
ConcurrentHashMap<Integer, String> chm =
new ConcurrentHashMap<Integer, String>();
chm.put(100, "Geeks");
chm.put(101, "for");
chm.put(102, "Geeks");
chm.put(103, "Gfg");
chm.put(104, "GFG");
// Displaying the HashMap
System.out.println("Initial Mappings are: "
+ chm);
// Inserting non-existing key along with value
String returned_value = (String)chm.putIfAbsent(108, "All");
// Verifying the returned value
System.out.println("Returned value is: "
+ returned_value);
// Displayin the new map
System.out.println("New mappings are: "
+ chm);
}
}
Output:
Initial Mappings are: {100=Geeks, 101=for, 102=Geeks, 103=Gfg, 104=GFG}
Returned value is: null
New mappings are: {100=Geeks, 101=for, 102=Geeks, 103=Gfg, 104=GFG, 108=All}
Program 2: A non-existing key is passed as parameter to the function.
Java
// Java Program Demonstrate putIfAbsent()
// method of ConcurrentHashMap
import java.util.concurrent.*;
class ConcurrentHashMapDemo {
public static void main(String[] args)
{
ConcurrentHashMap<Integer, String> chm =
new ConcurrentHashMap<Integer, String>();
chm.put(100, "Geeks");
chm.put(101, "for");
chm.put(102, "Geeks");
chm.put(103, "Gfg");
chm.put(104, "GFG");
// Displaying the HashMap
System.out.println("Initial Mappings are: "
+ chm);
// Inserting existing key along with value
String returned_value = (String)chm.putIfAbsent(100, "All");
// Verifying the returned value
System.out.println("Returned value is: "
+ returned_value);
// Displayin the new map
System.out.println("New mappings are: "
+ chm);
}
}
Output:
Initial Mappings are: {100=Geeks, 101=for, 102=Geeks, 103=Gfg, 104=GFG}
Returned value is: Geeks
New mappings are: {100=Geeks, 101=for, 102=Geeks, 103=Gfg, 104=GFG}
Reference:
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html#putIfAbsent()
Explore
Java Basics
OOP & Interfaces
Collections
Exception Handling
Java Advanced
Practice Java