📜  用Java Map中的默认值替换空值

📅  最后修改于: 2022-05-13 01:54:39.094000             🧑  作者: Mango

用Java Map中的默认值替换空值

给定一个包含空值的 Map,任务是将所有空值替换为默认值。

例子:

方法:

  1. 获取具有空值和要替换的默认值的地图。
  2. 使用 Map.entrySet() 方法获取地图的集合视图。
  3. 使用 stream() 方法将获得的集合视图转换为流。
  4. 现在在 map() 方法的帮助下将空值映射到默认值。
  5. 使用 collect() 方法将修改后的流收集到 Map 中。
  6. 空值已成功替换为默认值。

下面是上述方法的实现:

示例 1:使用整数。

// 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  Map
    replaceNullValues(Map 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 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}

示例 2:使用字符.

// 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  Map
    replaceNullValues(Map 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 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}