CodeGym /Java Blog /ランダム /Java の HashMap getOrDefault メソッド
John Squirrels
レベル 41
San Francisco

Java の HashMap getOrDefault メソッド

ランダム グループに公開済み

Java の HashMap の getOrDefault メソッドとは何ですか?

getOrDefaultメソッドは、 HashMap内の指定されたキーにマップされた値を返します。そのキーが存在しない場合は、デフォルト値が返されます。」
java.util.HashMapクラスには、デフォルト値を渡す特別な権限を与えるgetOrDefaultメソッドが付属していますデフォルト値は、さまざまな状況でさまざまな目的に使用できます。その使用法と単純な get メソッドとの比較については、この投稿の後半で説明します。

getOrDefault() メソッドのヘッダーは何ですか?

getOrDefaultメソッドの通常のヘッダーは次のように定義されます。

hashMap.getOrDefault(Object key, Object defaultValue)

渡されるパラメータ

メソッドヘッダーは 2 つの引数を取ります。これらは、以下のデータ型とともに登録されています。
  1. 最初のキーは、オブジェクト タイプの指定されたキーです。
  2. もう 1 つのオブジェクト タイプのパラメータは、メソッドの引数としてオブジェクトキーに渡されるdefaultValueです。

getOrDefault() メソッドの動作

getOrDefault()メソッドの動作は、次の 2 つの簡単な手順で理解できます。
  1. getOrDefault (key,defaultValue) は、HashMap内のキーに対応する値取得するように設計されています。
  2. keyに関連付けられた値がある場合は、そのが返されます。一方、値が使用できない場合は、このメソッドにパラメータとして渡されたdefaultValueが返されます。

例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);
	}

}

出力

勤務スケジュール : {月曜日 = 勤務日、木曜日 = 勤務日、金曜日 = 勤務日、日曜日 = 休み日、水曜日 = 勤務日、火曜日 = 勤務日、土曜日 = 休み日} 日曜日は勤務日ですか? 休みの日 クリスマスは仕事の日ですか?祝日 イースターは営業日ですか? 祝日

get() メソッドではなく getOrDefault() を使用するのはなぜですか?

Java の単純なget()メソッドは、 HashMap内の要求されたキーの値を取得するために使用されます。キーが見つかった場合は、値が返されます。キーが見つからない場合は「null」が返されます。デフォルト値が返されることが予想される場合は、単純な get メソッドよりも getOrDefault() メソッドが優先されます理解を助けるために簡単な例を示します。

例 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} クリスマスは祝日ですか? true クリスマスは祝日ですか? ヌル
getOrDefaultgetメソッド の違いがわかります。出力に表示されているように、キーが見つからない場合、 最初のメソッドはデフォルト値を返しますが、後者のメソッドは null を返します。

結論

この投稿を終えるまでに、 HashMapgetOrDefault()メソッドに精通している必要があります。実践して学ぶことをお勧めします。途中で行き詰まった場合は、この投稿をもう一度確認してください。それまで練習を続けて成長してください!
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION