Skip to content
Related Articles

Related Articles

Improve Article

Replace null values with default value in Java Map

  • Difficulty Level : Basic
  • Last Updated : 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 = 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:



  1. Get the map with null values and the default value to be replaced with.
  2. Get the set view of the Map using Map.entrySet() method.
  3. Convert the obtained set view into stream using stream() method.
  4. Now map the null values to default value with the help of map() method.
  5. Collect the modified stream into Map using collect() method.
  6. 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);
    }
}
Output:
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);
    }
}
Output:
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}

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :