Care este metoda getOrDefault pentru HashMaps în Java?
Care este antetul pentru metoda getOrDefault()?
Antetul obișnuit pentru metoda getOrDefault este definit după cum urmează.
hashMap.getOrDefault(Object key, Object defaultValue)
Parametrii trecuți
Antetul metodei are două argumente. Acestea sunt înscrise împreună cu tipurile lor de date mai jos.- Prima este cheia specificată a tipului de obiect.
- Celălalt tip de obiect este parametrul este defaultValue transmis pentru cheia obiectului ca argument al metodei.
Funcționarea metodei getOrDefault().
Puteți înțelege funcționarea metodei getOrDefault() în următorii doi pași simpli.- GetOrDefault (key, defaultValue) este conceput pentru a obține valoarea corespunzătoare cheii din HashMap .
- Dacă există o valoare asociată cu cheia , atunci valoarea respectivă este returnată. Pe de altă parte, dacă valoarea nu este disponibilă, atunci defaultValue transmisă ca parametru acestei metode este returnată.
Exemplul 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);
}
}
Ieșire
Program de lucru: {Luni=Ziua lucrătoare, Joi=Ziua lucrătoare, Vineri=Ziua lucrătoare, Duminică=Ziua liberă, Miercuri=Ziua lucrătoare, Marți=Ziua lucrătoare, Sâmbătă=Ziua liberă} Duminica este zi lucrătoare? Zi liberă Este Crăciunul o zi lucrătoare? Sărbătoarea Națională Este Paștele o zi lucrătoare? Sarbatoare nationala
De ce să folosiți metoda getOrDefault() și nu get()?
Metoda simplă get() în Java este utilizată pentru a obține valoarea cheii solicitate în HashMap . Dacă cheia este găsită, valoarea este returnată. În cazul în care cheia nu este găsită, este returnat „null”. Metoda getOrDefault() este preferată față de metoda get simplă atunci când se așteaptă să revină o valoare implicită . Iată un exemplu simplu pentru înțelegerea ta.Exemplul 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);
}
}
Ieșire
Sărbători: {Sunday=true, Saturday=true} Este Crăciunul o sărbătoare? adevărat Este Crăciunul o sărbătoare? nul
Puteți vedea diferența dintre metoda getOrDefault și metoda get . După cum este tipărită în rezultat, prima metodă returnează valoarea implicită dacă cheia nu este găsită, în timp ce cea din urmă returnează null.
GO TO FULL VERSION