Vad är getOrDefault-metoden för HashMaps i Java?
Vad är rubriken för metoden getOrDefault()?
Den vanliga rubriken för metoden getOrDefault definieras enligt följande.
hashMap.getOrDefault(Object key, Object defaultValue)
Parametrar godkända
Metodhuvudet tar två argument. De värvas tillsammans med sina datatyper nedan.- Den första är den angivna nyckeln för objekttypen.
- Den andra objekttypen är parametern är defaultValue som skickas för objektnyckeln som metodargument.
Arbetar med metoden getOrDefault().
Du kan förstå hur metoden getOrDefault() fungerar i följande två enkla steg.- GetOrDefault ( nyckel, defaultValue) är utformad för att få värdet som motsvarar nyckeln i HashMap .
- Om det finns ett värde kopplat till nyckeln returneras det värdet . Å andra sidan, om värdet inte är tillgängligt, returneras standardvärdet som skickats som en parameter till denna metod.
Exempel 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);
}
}
Produktion
Arbetsschema: {måndag=arbetsdag, torsdag=arbetsdag, fredag=arbetsdag, söndag=fridag, onsdag=arbetsdag, tisdag=arbetsdag, lördag=fridag} Är söndag en arbetsdag? Off Day Är julen en arbetsdag? Nationalhelgdag Är påsken en arbetsdag? National dag
Varför använda metoden getOrDefault() och inte get()?
Den enkla metoden get() i Java används för att få värdet på den begärda nyckeln i HashMap . Om nyckeln hittas returneras värdet. Om nyckeln inte hittas, returneras "null". Metoden getOrDefault() är att föredra framför den enkla get-metoden när ett standardvärde förväntas returnera. Här är ett enkelt exempel för din förståelse.Exempel 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);
}
}
Produktion
Helgdagar: {söndag=true, Saturday=true} Är julen en helgdag? sant Är julen en högtid? null
Du kan se skillnaden mellan getOrDefault och get -metoden. Som utskrivet i utdata returnerar den första metoden standardvärdet om nyckeln inte hittas medan den senare returnerar null.
GO TO FULL VERSION