@[TOC](Java Map getOrDefault() 示例 | Map获取值为空则取默认值)
getOrDefault
是java.util.Map
的默认方法,在Java 8
中被引入。
getOrDefault
方法返回给定键的值,如果没有与该键相关的值,那么将返回指定的默认值。
找到该方法的签名。
default V getOrDefault(Object key, V defaultValue)
key: 要获得该值的键。
defaultValue: 默认值。
返回值是一个与键相关的值,如果没有则返回默认值。
例1:在本例中,我们使用HashMap
。
GetOrDefault1.java
import java.util.HashMap;
import java.util.Map;
public class GetOrDefault1 {
public static void main(String[] args) {
Map<Integer, String> studentMap = new HashMap<>();
studentMap.put(101, "Mahesh");
studentMap.put(102, "Suresh");
studentMap.put(103, "Krishna");
String defaultValue = "No Student";
String stdName = studentMap.getOrDefault(102, defaultValue);
System.out.println(stdName);
stdName = studentMap.getOrDefault(104, defaultValue);
System.out.println(stdName);
stdName = studentMap.getOrDefault(105, defaultValue);
System.out.println(stdName);
}
}
输出
Suresh
No Student
No Student
对于键102
,在Map
中存在相关的值,所以我们得到该值。
对于键104
和105
,没有相关的值,因此我们将得到指定的默认值。
例2:在本例中,我们使用的是LinkedHashMap
。
GetOrDefault2.java
import java.util.LinkedHashMap;
import java.util.Map;
public class GetOrDefault2 {
public static void main(String[] args) {
Map<Integer, Integer> numberMap = new LinkedHashMap<>();
numberMap.put(1, 100);
numberMap.put(2, 200);
numberMap.put(3, 300);
Integer defaultValue = 0;
Integer val = numberMap.getOrDefault(2, defaultValue);
System.out.println(val);
val = numberMap.getOrDefault(6, defaultValue);
System.out.println(val);
val = numberMap.getOrDefault(7, defaultValue);
System.out.println(val);
}
}
输出
200
0
0
例3: 在本例中,我们使用TreeMap
。
GetOrDefault3.java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class GetOrDefault3 {
public static void main(String[] args) {
Map<String, List<String>> treeMap = new TreeMap<>();
treeMap.put("color", Arrays.asList("Orange", "Yellow"));
treeMap.put("game", Arrays.asList("Cricket", "Hockey"));
List<String> defaultValue = new ArrayList<>();
List<String> val = treeMap.getOrDefault("game", defaultValue);
System.out.println(val);
val = treeMap.getOrDefault("city", defaultValue);
System.out.println(val);
}
}
输出
[Cricket, Hockey]
[]