Properties computeIfPresent(Key, BiFunction) method in Java with Examples

The computeIfPresent(Key, BiFunction) method of Properties class which allows you to compute value of a mapping for specified key if key is already associated with a value (or is mapped to null).

  • If mapping function of this method returns null, the mapping is removed.
  • If the remapping function throws an exception, the exception is rethrown, and the mapping is left unchanged.
  • During computation, modification this map using this method is not allowed.
  • This method will throw a ConcurrentModificationException if the remapping function modified this map during computation.

Syntax:

public Object computeIfPresent?(Object key,
                              BiFunction remappingFunction)

Parameters: This method accepts two parameters:



  • key: key with which the value is to be associated.
  • remappingFunction: function to do the operation on value.

Returns: This method returns new remapped value associated with the specified key, or null if mapping returns null.

Exception: This method throws ConcurrentModificationException if it is detected that the remapping function modified this map.

Below programs illustrate the computeIfPresent(Key, BiFunction) method:

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// computeIfPresent(Key, BiFunction) method.
  
import java.util.*;
  
public class GFG {
  
    // Main method
    public static void main(String[] args)
    {
  
        // Create a properties and add some values
        Properties properties = new Properties();
        properties.put("Pen", 10);
        properties.put("Book", 500);
        properties.put("Clothes", 400);
        properties.put("Mobile", 5000);
  
        // print Properties details
        System.out.println("Current Properties: "
                           + properties.toString());
  
        // provide new value for keys which is present
        // using computeIfPresent method
        properties.computeIfPresent("Pen", (key, val)
                                               -> 600);
        properties.computeIfPresent("Book", (key, val)
                                                -> 800);
  
        // print new mapping
        System.out.println("New Properties: "
                           + properties.toString());
    }
}

chevron_right


Output:

Current Properties: {Book=500, Mobile=5000, Pen=10, Clothes=400}
New Properties: {Book=800, Mobile=5000, Pen=600, Clothes=400}

Program 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// computeIfPresent(Key, BiFunction) method.
  
import java.util.*;
  
public class GFG {
  
    // Main method
    public static void main(String[] args)
    {
  
        // Create a properties and add some values
        Properties properties = new Properties();
  
        properties.put(1, "100RS");
        properties.put(2, "500RS");
        properties.put(3, "1000RS");
  
        // print Properties details
        System.out.println("Current Properties: "
                           + properties.toString());
  
        // provide new value for key which is present
        // using computeIfPresent method
        properties.computeIfPresent(3, (key, val)
                                           -> "00RS");
  
        // this will not effect anything
        // because key 4 is absent
        properties.computeIfPresent(4, (key, val)
                                           -> "$");
  
        // print new mapping
        System.out.println("New Properties: "
                           + properties.toString());
    }
}

chevron_right


Output:

Current Properties: {3=1000RS, 2=500RS, 1=100RS}
New Properties: {3=00RS, 2=500RS, 1=100RS}

References: https://docs.oracle.com/javase/9/docs/api/java/util/Properties.html#computeIfPresent-java.lang.Object-java.util.function.BiFunction-



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : nidhi_biet