场景
对于某些情况下,我们不希望Map返回的值为null,所以理所当然的想到了getOrDefault方法,我之前的想法是getOrDefault方法会在get到的结果为null时返回默认值,然而却不是。
代码
Map<String, Integer> map = new HashMap<>();
map.put("a", null);
map.put("b", 2);
map.put("c", 3);
System.out.println(map.getOrDefault("a", 100));
System.out.println(map.getOrDefault("d", 200));
打印结果
null
200
分析
从以上代码可以看出来,getOrDefault的默认值的生效条件并不是get的值为null,而是containsKey的结果为false。
Java Map getOrDefault 方法误区

本文解析了Java中Map的getOrDefault方法的行为,指出其默认值并非在get结果为null时生效,而是在键不存在于Map中时生效。通过实例代码展示了这一特性,并提供了深入理解。
598





