Hvad er getOrDefault-metoden til HashMaps i Java?
Hvad er overskriften for getOrDefault()-metoden?
Den almindelige overskrift for getOrDefault- metoden er defineret som følger.
hashMap.getOrDefault(Object key, Object defaultValue)
Parametre bestået
Metodehovedet tager to argumenter. De er optaget sammen med deres datatyper nedenfor.- Den første er den angivne nøgle af objekttypen.
- Den anden objekttype er parameter er defaultValue , der sendes for objektnøglen som metodeargument.
Arbejder med getOrDefault() metoden
Du kan forstå, hvordan getOrDefault()- metoden fungerer i de følgende to enkle trin.- GetOrDefault (key, defaultValue) er designet til at få den værdi , der svarer til nøglen i HashMap .
- Hvis der er en værdi knyttet til nøglen , returneres denne værdi . På den anden side, hvis værdien ikke er tilgængelig, returneres standardværdien , der er sendt som en parameter til denne metode.
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);
}
}
Produktion
Arbejdstidsplan: {mandag=arbejdsdag, torsdag=arbejdsdag, fredag=arbejdsdag, søndag=fridag, onsdag=arbejdsdag, tirsdag=arbejdsdag, lørdag=fridag} Er søndag en arbejdsdag? Fridag Er julen en arbejdsdag? Nationalferie Er påsken en arbejdsdag? National helligdag
Hvorfor bruge metoden getOrDefault() og ikke get()?
Den simple get() metode i Java bruges til at få værdien af den anmodede nøgle i HashMap . Hvis nøglen findes, returneres værdien. Hvis nøglen ikke findes, returneres "null". GetOrDefault () -metoden foretrækkes frem for den simple get-metode, når en standardværdi forventes at returnere. Her er et simpelt eksempel til 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);
}
}
Produktion
Helligdage: {søndag=sand, lørdag=sand} Er julen en helligdag? sandt Er julen en højtid? nul
Du kan se forskellen mellem getOrDefault og get - metoden. Som udskrevet i outputtet returnerer den første metode standardværdien , hvis nøglen ikke findes, mens sidstnævnte returnerer null.
GO TO FULL VERSION