一、什么是getOrDefault方法
Java中的Map是一种最基本的数据结构之一,用于存储键值对。在Map中,getOrDefault()是一种获取指定键的值,如果没有键存在,则返回提供的默认值的方法。
Mapmap = new HashMap<>(); Integer value = map.getOrDefault("key", 0);
这个代码将尝试从Map中检索键为“key”的值并将其赋给变量“value”。
如果该键存在,则“value”将以相应的值被赋值。否则,0将作为默认值被赋给“value”。
二、使用示例
1、使用默认值
getOrDefault()方法可用于确保您的代码不会因为没有找到键而发生异常。
Mapmap = new HashMap<>(); Integer value = map.getOrDefault("key", 0);
假设我们有一个Map,它映射字母与其出现次数。我们希望获取某个字母的数量,但在Map中不存在该字母。这时候我们可以使用默认值来避免异常的出现:
Mapmap = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); Integer value = map.getOrDefault("d", 0); System.out.println(value); //输出: 0
这个代码中的“value”变量将被赋值为0,因为Key“d”在Map中不存在。
2、使用指定值
您也可以使用指定值来取代默认值。
Mapmap = new HashMap<>(); map.put("a", 1); map.put("b", 2); Integer value = map.getOrDefault("b", 0); System.out.println(value); //输出: 2
这里的“value”变量将被赋值为2,因为Map中包含键“b”。
3、默认值可以是方法调用
在默认值位置可以是一个方法调用。
public Integer getValue() { return 0; } Mapmap = new HashMap<>(); map.put("a", 1); map.put("b", 2); Integer value = map.getOrDefault("c", getValue()); System.out.println(value); //输出: 0
这里的“getValue()”方法返回值为0,因此当Map中不存在键“c”时,“value”变量将被赋值为0。
三、使用场景
1、Map的遍历
在遍历Map时,getOrDefault()方法可用于初始化Map中每个键的默认值。这是一种方法,可以确保在尝试访问数据之前,Map中包含所需的键。
Mapmap = new HashMap<>(); for (String key : keys) { map.put(key, map.getOrDefault(key, 0) + 1); }
在上述代码中,“keys”是一个包含多个键的列表。对于每个键,我们检查它是否已经存在于Map中。如果它存在,我们将其值加1。否则,我们将该键添加到Map中,并初始化其值为1。
2、处理字典
在处理字典时,我们经常需要对Map中不存在的单词进行处理。getOrDefault()方法可用于为单词设置默认值。
Mapdictionary = new HashMap<>(); //... String word = "java"; Integer count = dictionary.getOrDefault(word, 0); dictionary.put(word, count + 1);
在上述代码中,我们想要处理名为“java”的单词。如果该单词不存在于字典中,则在Map中将其初始化为0,并将计数加1。
四、总结
getOrDefault()方法是Java Map API的一部分。它可用于确保代码不会因为缺少键而引发异常。此方法可用于处理字典或Map的遍历。