Java HashMap putIfAbsent()

The syntax of the putIfAbsent() method is:

hashmap.putIfAbsent(K key, V value)

Here, hashmap is an object of the HashMap class.


putIfAbsent() Parameters

The putIfAbsent() method takes two parameters.

  • key - the specified value is associated with this key
  • value - the specified key is mapped with this value

putAbsent() Return Value

  • returns the value associated with the key, if the specified key is already present in the hashmap
  • returns null, if the specified key is already not present in the hashmap

Note:  If the specified key is previously associated with a null value, then also the method returns null.


Example 1: Java HashMap putIfAbsent()

import java.util.HashMap;

class Main {
  public static void main(String[] args){

    // create a HashMap
    HashMap<Integer, String> languages = new HashMap<>();

    // add mappings to HashMap
    languages.put(1, "Python");
    languages.put(2, "C");
    languages.put(3, "Java");
    System.out.println("Languages: " + languages);

    // key already not present in HashMap
    languages.putIfAbsent(4, "JavaScript");

    // key already present in HashMap
    languages.putIfAbsent(2, "Swift");
    System.out.println("Updated Languages: " + languages);
  }
}

Output

Languages: {1=Python, 2=C, 3=Java}
Updated Languages: {1=Python, 2=C, 3=Java, 4=JavaScript}

In the above example, we have created a hashmap named languages. Notice the line,

languages.putIfAbsent(4, "JavaScript");

Here, the key 4 is not already associated with any value. Hence, the putifAbsent() method adds the mapping {4 = JavaScript} to the hashmap.

Notice the line,

languages.putIfAbsent(2, "Swift");

Here, the key 2 is already associated with value Java. Hence, the putIfAbsent() method does not add the mapping {2 = Swift} to the hashmap.

Note: We have used the put() method to add a single mapping to the hashmap. To learn more, visit Java HashMap put().