Was ist die getOrDefault-Methode für HashMaps in Java?
Was ist der Header für die getOrDefault()-Methode?
Der reguläre Header für die getOrDefault- Methode ist wie folgt definiert.hashMap.getOrDefault(Object key, Object defaultValue)
Übergebene Parameter
Der Methodenheader benötigt zwei Argumente. Sie sind unten zusammen mit ihren Datentypen aufgeführt.- Der erste ist der angegebene Schlüssel des Objekttyps.
- Der andere Objekttyp ist der Parameter defaultValue, der für den Objektschlüssel als Methodenargument übergeben wird .
Funktionsweise der Methode getOrDefault()
In den folgenden zwei einfachen Schritten können Sie die Funktionsweise der getOrDefault()- Methode verstehen.- getOrDefault (key, defaultValue) dient dazu, den Wert abzurufen , der dem Schlüssel in der HashMap entspricht .
- Wenn dem Schlüssel ein Wert zugeordnet ist , wird dieser Wert zurückgegeben. Wenn der Wert hingegen nicht verfügbar ist, wird der als Parameter an diese Methode übergebene defaultValue zurückgegeben.
Beispiel 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);
}
}
Ausgang
Arbeitszeitplan: {Montag=Arbeitstag, Donnerstag=Arbeitstag, Freitag=Arbeitstag, Sonntag=Freier Tag, Mittwoch=Arbeitstag, Dienstag=Arbeitstag, Samstag=Freier Tag} Ist Sonntag ein Arbeitstag? Ruhetag Ist Weihnachten ein Arbeitstag? Nationalfeiertag Ist Ostern ein Werktag? Nationalfeiertag
Warum die Methode getOrDefault() und nicht die Methode get() verwenden?
Die einfache Methode get() in Java wird verwendet, um den Wert des angeforderten Schlüssels in der HashMap abzurufen . Wenn der Schlüssel gefunden wird, wird der Wert zurückgegeben. Falls der Schlüssel nicht gefunden wird, wird „null“ zurückgegeben. Die Methode getOrDefault() wird der einfachen Methode get vorgezogen, wenn erwartet wird, dass ein Standardwert zurückgegeben wird. Hier ist ein einfaches Beispiel für Ihr Verständnis.Beispiel 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);
}
}
Ausgang
Feiertage: {Sunday=true, Saturday=true} Ist Weihnachten ein Feiertag? wahr Ist Weihnachten ein Feiertag? Null
Sie können den Unterschied zwischen der getOrDefault- und der get- Methode erkennen . Wie in der Ausgabe angegeben, gibt die erste Methode den Standardwert zurück , wenn der Schlüssel nicht gefunden wird, während die zweite Methode null zurückgibt.
GO TO FULL VERSION