CodeGym /Java Blog /Toto sisi /Java 中的 HashMap getOrDefault 方法
John Squirrels
等級 41
San Francisco

Java 中的 HashMap getOrDefault 方法

在 Toto sisi 群組發布

Java 中 HashMap 的 getOrDefault 方法是什麼?

getOrDefault方法返回映射到HashMap中指定鍵的值。如果該鍵不存在,則返回默認值。”
java.util.HashMap類帶有getOrDefault方法以提供傳遞默認值的額外權限。默認值可用於各種情況下的不同目的。它的用法和與簡單的get方法的比較將在後面的帖子中解釋。

getOrDefault() 方法的標頭是什麼?

getOrDefault方法的常規標頭定義如下。

hashMap.getOrDefault(Object key, Object defaultValue)

傳遞的參數

方法頭有兩個參數。它們連同它們的數據類型一起在下面列出。
  1. 第一個是Object 類型的指定鍵。
  2. 另一個對像類型是參數是作為方法參數為對象鍵傳遞的默認值。

getOrDefault() 方法的工作

您可以通過以下兩個簡單步驟了解getOrDefault()方法的工作原理。
  1. getOrDefault (key, defaultValue)旨在獲取與HashMap對應的值。
  2. 如果有與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}聖誕節是假期嗎?真的 聖誕節是假期嗎?無效的
您可以看到getOrDefaultget方法 之間的區別。如輸出中所打印的,如果未找到鍵, 第一個方法返回默認值,而後者返回 null。

結論

到本文結束時,您必須熟悉HashMapgetOrDefault()方法。建議您通過實踐來學習。如果您遇到困難,請隨時再次查看這篇文章。到那時,繼續練習並繼續成長!
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION