Hva er getOrDefault-metoden for HashMaps i Java?
Hva er overskriften for getOrDefault()-metoden?
Den vanlige overskriften for getOrDefault- metoden er definert som følger.hashMap.getOrDefault(Object key, Object defaultValue)
Parametre bestått
Metodehodet tar to argumenter. De er vervet sammen med datatypene deres nedenfor.- Den første er den angitte nøkkelen til objekttypen.
- Den andre objekttypen er parameteren er defaultValue som sendes for objektnøkkelen som metodeargumentet.
Arbeid med getOrDefault()-metoden
Du kan forstå hvordan getOrDefault() -metoden fungerer i de følgende to enkle trinnene.- GetOrDefault (key, defaultValue) er designet for å få verdien som tilsvarer nøkkelen i HashMap .
- Hvis det er en verdi knyttet til nøkkelen , returneres denne verdien . På den annen side, hvis verdien ikke er tilgjengelig, returneres standardverdien som er sendt som en parameter til denne metoden.
Eksempel 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);
}
}
Produksjon
Arbeidsplan: {mandag=arbeidsdag, torsdag=arbeidsdag, fredag=arbeidsdag, søndag=fridag, onsdag=arbeidsdag, tirsdag=arbeidsdag, lørdag=fridag} Er søndag en arbeidsdag? Fridag Er jul en arbeidsdag? Nasjonal helligdag Er påsken en arbeidsdag? Nasjonal helligdag
Hvorfor bruke getOrDefault() og ikke get() metoden?
Den enkle get()- metoden i Java brukes for å få verdien av den forespurte nøkkelen i HashMap . Hvis nøkkelen blir funnet, returneres verdien. Hvis nøkkelen ikke blir funnet, returneres "null". GetOrDefault () -metoden foretrekkes fremfor den enkle get-metoden når en standardverdi forventes å returnere. Her er et enkelt eksempel for din forståelse.Eksempel 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);
}
}
Produksjon
Helligdager: {søndag=true, Saturday=true} Er julen en høytid? sant Er jul en høytid? null
Du kan se forskjellen mellom getOrDefault og get - metoden. Som skrevet ut i utdataene, returnerer den første metoden standardverdien hvis nøkkelen ikke blir funnet mens sistnevnte returnerer null.