Jaka jest metoda getOrDefault dla HashMaps w Javie?
Jaki jest nagłówek metody getOrDefault()?
Zwykły nagłówek metody getOrDefault jest zdefiniowany w następujący sposób.
hashMap.getOrDefault(Object key, Object defaultValue)
Parametry przekazane
Nagłówek metody przyjmuje dwa argumenty. Są one wymienione wraz z ich typami danych poniżej.- Pierwszym z nich jest określony klucz typu Object.
- Drugim typem obiektu jest parametr defaultValue przekazany dla klucza obiektu jako argument metody.
Działanie metody getOrDefault().
Możesz zrozumieć działanie metody getOrDefault() w następujących dwóch prostych krokach.- Metoda getOrDefault(key, defaultValue) ma na celu uzyskanie wartości odpowiadającej kluczowi w HashMap .
- Jeśli z kluczem jest powiązana wartość , to ta wartość jest zwracana. Z drugiej strony, jeśli wartość nie jest dostępna, zwracana jest wartość domyślna przekazana jako parametr do tej metody.
Przykład 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);
}
}
Wyjście
Harmonogram pracy: {poniedziałek=dzień roboczy, czwartek=dzień roboczy, piątek=dzień roboczy, niedziela=dzień wolny, środa=dzień roboczy, wtorek=dzień roboczy, sobota=dzień wolny}
Czy niedziela jest dniem roboczym? Dzień wolny
Czy Boże Narodzenie jest dniem roboczym? Święto Narodowe
Czy Wielkanoc jest dniem roboczym? Święto narodowe
Po co używać metody getOrDefault() a nie metody get()?
Prosta metoda get() w Javie służy do pobierania wartości żądanego klucza w HashMap . Jeśli klucz zostanie znaleziony, zwracana jest wartość. Jeśli klucz nie zostanie znaleziony, zwracane jest „null”. Metoda getOrDefault() jest preferowana w stosunku do prostej metody get, gdy oczekuje się zwrotu wartości domyślnej . Oto prosty przykład dla zrozumienia.Przykład 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);
}
}
Wyjście
Święta: {niedziela=true, sobota=true}
Czy Boże Narodzenie jest świętem? prawda
Czy Boże Narodzenie to święto? zero
Możesz zobaczyć różnicę między metodą getOrDefault a metodą get . Jak wydrukowano na wyjściu, pierwsza metoda zwraca wartość domyślną , jeśli klucz nie zostanie znaleziony, podczas gdy druga zwraca wartość null.
GO TO FULL VERSION