Given a Map with null values in it, the task is to replace all the null values with a default value.
Examples:
Input: map = {1=1, 2=2, 3=null, 4=4, 5=null, 6=null}, defaultValue = 0
Output: {1=1, 2=2, 3=0, 4=4, 5=0, 6=0}Input: map = {1=A, 2=B, 3=null, 4=D, 5=null, 6=null}, defaultValue = ‘Z’
Output: {1=A, 2=B, 3=Z, 4=D, 5=Z, 6=Z}
Approach:
- Get the map with null values and the default value to be replaced with.
- Get the set view of the Map using Map.entrySet() method.
- Convert the obtained set view into stream using stream() method.
- Now map the null values to default value with the help of map() method.
- Collect the modified stream into Map using collect() method.
- The null values has been successfully replaced with default value.
Below is the implementation of the above approach:
Example 1: With integers.
| // Java program to replace null values// of a map with a default value importjava.util.*;importjava.util.stream.*; classGFG {     // Function to replace the null values    publicstatic<T, K> Map<K, T>    replaceNullValues(Map<K, T> map, T defaultValue)    {         // Replace the null value        map = map.entrySet()                  .stream()                  .map(entry -> {                      if(entry.getValue() == null)                          entry.setValue(defaultValue);                      returnentry;                  })                  .collect(Collectors.toMap(Map.Entry::getKey,                                            Map.Entry::getValue));         returnmap;    }     publicstaticvoidmain(String[] args)    {         // Get the map        Map<Integer, Integer> map = newHashMap<>();        map.put(1, 1);        map.put(2, 2);        map.put(3, null);        map.put(4, 4);        map.put(5, null);        map.put(6, null);         // Get the default value        intdefaultValue = 0;         // Print the original map        System.out.println("Map with null values: "                           + map);         // Replace the null values with the defaultValue        map = replaceNullValues(map, defaultValue);         // Print the modified map        System.out.println("Map with null value replaced: "                           + map);    }} | 
Map with null values: {1=1, 2=2, 3=null, 4=4, 5=null, 6=null}
Map with null value replaced: {1=1, 2=2, 3=0, 4=4, 5=0, 6=0}
Example 2: With characters.
| // Java program to replace null values// of a map with a default value importjava.util.*;importjava.util.stream.*; classGFG {     // Function to replace the null values    publicstatic<T, K> Map<K, T>    replaceNullValues(Map<K, T> map, T defaultValue)    {         // Replace the null value        map = map.entrySet()                  .stream()                  .map(entry -> {                      if(entry.getValue() == null)                          entry.setValue(defaultValue);                      returnentry;                  })                  .collect(Collectors.toMap(Map.Entry::getKey,                                            Map.Entry::getValue));         returnmap;    }     publicstaticvoidmain(String[] args)    {         // Get the map        Map<Integer, Character> map = newHashMap<>();        map.put(1, 'A');        map.put(2, 'B');        map.put(3, null);        map.put(4, 'D');        map.put(5, null);        map.put(6, null);         // Get the default value        chardefaultValue = 'Z';         // Print the original map        System.out.println("Map with null values: "                           + map);         // Replace the null values with the defaultValue        map = replaceNullValues(map, defaultValue);         // Print the modified map        System.out.println("Map with null value replaced: "                           + map);    }} | 
Map with null values: {1=A, 2=B, 3=null, 4=D, 5=null, 6=null}
Map with null value replaced: {1=A, 2=B, 3=Z, 4=D, 5=Z, 6=Z}


 
                                    







