Replace null values with default value in Java Map

11 Dec, 2018
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 = 0Output: {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.
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  import java.util.*;import java.util.stream.*;  class GFG {      // Function to replace the null values    public static <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);                      return entry;                  })                  .collect(Collectors.toMap(Map.Entry::getKey,                                            Map.Entry::getValue));          return map;    }      public static void main(String[] args)    {          // Get the map        Map<Integer, Integer> map = new HashMap<>();        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        int defaultValue = 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  import java.util.*;import java.util.stream.*;  class GFG {      // Function to replace the null values    public static <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);                      return entry;                  })                  .collect(Collectors.toMap(Map.Entry::getKey,                                            Map.Entry::getValue));          return map;    }      public static void main(String[] args)    {          // Get the map        Map<Integer, Character> map = new HashMap<>();        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        char defaultValue = '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}

Java - util package
Java-Collections
java-map
Java-Map-Programs
Java
Java
Java-Collections
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.