Java 中 HashMap 的 getOrDefault 方法是什么?
getOrDefault() 方法的标头是什么?
getOrDefault方法的常规标头定义如下。hashMap.getOrDefault(Object key, Object defaultValue)
传递的参数
方法头有两个参数。它们连同它们的数据类型一起在下面列出。- 第一个是Object 类型的指定键。
- 另一个对象类型是参数是作为方法参数为对象键传递的默认值。
getOrDefault() 方法的工作
您可以通过以下两个简单步骤了解getOrDefault()方法的工作原理。- getOrDefault (key, defaultValue)旨在获取与HashMap中的键对应的值。
- 如果有与key关联的值,则返回该值。另一方面,如果该值不可用,则返回作为参数传递给此方法的默认值。
示例 1
import java.util.HashMap;
public class Driver1{
public static void main(String[] args) {
// Declare a HashMap
HashMap weekDays = new HashMap<>();
// Add data to the HashMap
weekDays.put("Monday", "Working Day");
weekDays.put("Tuesday", "Working Day");
weekDays.put("Wednesday", "Working Day");
weekDays.put("Thursday", "Working Day");
weekDays.put("Friday", "Working Day");
weekDays.put("Saturday", "Off Day");
weekDays.put("Sunday", "Off Day");
// Print the data in the HashMap
System.out.println("Working Schedule : " + weekDays + "\n");
// Check if the given key is present in the Map
// IF yes, its value will be returned
String sunday = weekDays.getOrDefault("Sunday", "No Announcements Yet.");
System.out.println("Is Sunday a working day? " + sunday);
// IF not, the default value passed will be returned
String christmas = weekDays.getOrDefault("Christmas", "National Holiday");
System.out.println("Is Christmas a working day? " + christmas);
// Key not present in the HashMap
// Default Value returned
String easter = weekDays.getOrDefault("Easter", "National Holiday");
System.out.println("Is Easter a working day? " + easter);
}
}
输出
工作时间表:{星期一=工作日,星期四=工作日,星期五=工作日,星期日=休息日,星期三=工作日,星期二=工作日,星期六=休息日}星期天是工作日吗?休息日 圣诞节是工作日吗?国庆节复活节是工作日吗?法定假日
为什么使用 getOrDefault() 而不是 get() 方法?
Java 中简单的get()方法用于获取HashMap中请求的键的值。如果找到键,则返回值。如果找不到密钥,则返回“null”。当预期返回默认值时, getOrDefault ()方法优于简单的 get 方法。这里有一个简单的例子供您理解。示例 2
import java.util.HashMap;
public class Driver2{
public static void main(String[] args) {
HashMap<Object, Boolean> holidays = new HashMap<>();
// Add data to the HashMap
holidays.put("Saturday", true);
holidays.put("Sunday", true);
// Print the data in the HashMap
System.out.println("Holidays: " + holidays + "\n");
// Key not present, default value returned
Object christmas = holidays.getOrDefault("Christmas", true);
System.out.println("Is Christmas a holiday? " + christmas);
// Key not present, null returned
christmas = holidays.get("Christmas");
System.out.println("Is Christmas a holiday? " + christmas);
}
}
输出
假期:{Sunday=true, Saturday=true}圣诞节是假期吗?真的 圣诞节是假期吗?无效的
您可以看到getOrDefault和get方法 之间的区别。如输出中所打印的,如果未找到键, 第一个方法返回默认值,而后者返回 null。
GO TO FULL VERSION