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