CodeGym /Blog Java /Random-PL /Metoda HashMap getOrDefault w Javie
Autor
John Selawsky
Senior Java Developer and Tutor at LearningTree

Metoda HashMap getOrDefault w Javie

Opublikowano w grupie Random-PL

Jaka jest metoda getOrDefault dla HashMaps w Javie?

„ Metoda getOrDefault zwraca wartość odwzorowaną na określony klucz w HashMap . Jeśli ten klucz nie jest obecny, zwracana jest wartość domyślna.”
Klasa java.util.HashMap jest dostarczana z metodą getOrDefault , która daje dodatkowe uprawnienie do przekazywania wartości domyślnej. Wartość domyślna może być używana do różnych celów w różnych sytuacjach. Jej użycie i porównanie z prostą metodą get zostanie wyjaśnione w dalszej części wpisu.

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.
  1. Pierwszym z nich jest określony klucz typu Object.
  2. 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.
  1. Metoda getOrDefault(key, defaultValue) ma na celu uzyskanie wartości odpowiadającej kluczowi w HashMap .
  2. 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.

Wniosek

Do końca tego wpisu musisz znać metodę getOrDefault() obiektu HashMap . Zaleca się naukę przez praktykę. Zachęcamy do ponownego sprawdzenia tego postu, jeśli utkniesz po drodze. Do tego czasu ćwicz i rozwijaj się!
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION