Care este metoda getOrDefault pentru HashMaps în Java?

„ Metoda getOrDefault returnează valoarea mapată la cheia specificată într-un HashMap . Dacă acea cheie nu este prezentă, atunci este returnată o valoare implicită.”
Clasa java.util.HashMap vine cu metoda getOrDefault pentru a oferi un privilegiu suplimentar de a transmite valoarea implicită. Valoarea implicită poate fi utilizată în scopuri diferite în diferite situații. Utilizarea și comparația sa cu metoda obținere simplă vor fi explicate mai târziu în postare.

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.
  1. Prima este cheia specificată a tipului de obiect.
  2. 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.
  1. GetOrDefault (key, defaultValue) este conceput pentru a obține valoarea corespunzătoare cheii din HashMap .
  2. 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.

Concluzie

Până la sfârșitul acestei postări, trebuie să fiți familiarizat cu metoda getOrDefault() a lui HashMap . Ești sfătuit să înveți prin practică. Simțiți-vă liber să verificați această postare din nou dacă vă blocați pe drum. Până atunci, continuă să exersezi și să crești în continuare!