Java の HashMap の getOrDefault メソッドとは何ですか?
getOrDefault() メソッドのヘッダーは何ですか?
getOrDefaultメソッドの通常のヘッダーは次のように定義されます。
hashMap.getOrDefault(Object key, Object defaultValue)
渡されるパラメータ
メソッドヘッダーは 2 つの引数を取ります。これらは、以下のデータ型とともに登録されています。- 最初のキーは、オブジェクト タイプの指定されたキーです。
- もう 1 つのオブジェクト タイプのパラメータは、メソッドの引数としてオブジェクトキーに渡されるdefaultValueです。
getOrDefault() メソッドの動作
getOrDefault()メソッドの動作は、次の 2 つの簡単な手順で理解できます。- getOrDefault (key,defaultValue) は、HashMap内のキーに対応する値を取得するように設計されています。
- 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 クリスマスは祝日ですか? ヌル
getOrDefaultとgetメソッド の違いがわかります。出力に表示されているように、キーが見つからない場合、 最初のメソッドはデフォルト値を返しますが、後者のメソッドは null を返します。
GO TO FULL VERSION