The computeIfAbsent() in Java computes a given value by using a provided operation function.

Method signature:

The signature for computeIfAbsent() is shown below:

public V computeIfAbsent(K key, Function<? super K, ? extends V> Function)

Methods parameters and return type:

Parameter: It takes a key and a function as a parameter. We perform an operation given in a function on a value of a given key.

Return type: It returns a value of a specific key or null if the mapping is null.

Throws: It throws ConcurrentModificationException.

Example 1:

Here we have computed the 5th value in the hashmap by passing a key and a function in which two values are multiplied.

Source code:

public class Example1 {

    public static void main(String[] args) {

        // create a HashMap and add some values
        HashMap<String, Integer> map = new HashMap<>();
        map.put("1", 100);
        map.put("2", 200);
        map.put("3", 300);
        map.put("4", 400);

        System.out.println("HashMap: " + map.toString());

        map.computeIfAbsent("5", k -> 5 * 25);
        
        System.out.println("Updated HashMap: "+ map);
    }
}

Output:

run:
HashMap: {1=100, 2=200, 3=300, 4=400}
Updated HashMap: {1=100, 2=200, 3=300, 4=400, 5=125}
BUILD SUCCESSFUL (total time: 1 second)

Example 2:

In this example, we have used string values. We have computed a new string on a key “4.” We have tried again to compute a new string on the 4th key, but as it is already present, so it will not compute again.

Source code:

public class Example2 {
    
    public static void main(String[] args)
    {
  
        // create a HashMap and add some values
        HashMap<Integer, String> nameMap = new HashMap<>();
        nameMap.put(1, "Ali");
        nameMap.put(2, "Sara");
        nameMap.put(3, "Virat");
  
        System.out.println("HashMap: "+ nameMap.toString());
  
        nameMap.computeIfAbsent(4, k -> "Sameer");
  
        nameMap.computeIfAbsent(4, k -> "Salman");
  
        System.out.println("Updated HashMap: " + nameMap);
    }
}

Output:

run:
HashMap: {1=Ali, 2=Sara, 3=Virat}
Updated HashMap: {1=Ali, 2=Sara, 3=Virat, 4=Sameer}
BUILD SUCCESSFUL (total time: 1 second)

References: