CodeGym /Java blogg /Slumpmässig /HashMap getOrDefault-metoden i Java
John Squirrels
Nivå
San Francisco

HashMap getOrDefault-metoden i Java

Publicerad i gruppen

Vad är getOrDefault-metoden för HashMaps i Java?

" Metoden getOrDefault returnerar värdet som mappas till den angivna nyckeln i en HashMap . Om den nyckeln inte är närvarande returneras ett standardvärde."
Klassen java.util.HashMap kommer med metoden getOrDefault för att ge en extra behörighet att skicka standardvärdet. Standardvärdet kan användas för olika ändamål i olika situationer. Dess användning och jämförelse med den enkla get-metoden kommer att förklaras senare i inlägget.

Vad är rubriken för metoden getOrDefault()?

Den vanliga rubriken för metoden getOrDefault definieras enligt följande.

hashMap.getOrDefault(Object key, Object defaultValue)

Parametrar godkända

Metodhuvudet tar två argument. De värvas tillsammans med sina datatyper nedan.
  1. Den första är den angivna nyckeln för objekttypen.
  2. Den andra objekttypen är parametern är defaultValue som skickas för objektnyckeln som metodargument.

Arbetar med metoden getOrDefault().

Du kan förstå hur metoden getOrDefault() fungerar i följande två enkla steg.
  1. GetOrDefault ( nyckel, defaultValue) är utformad för att värdet som motsvarar nyckeln i HashMap .
  2. Om det finns ett värde kopplat till nyckeln returneras det värdet . Å andra sidan, om värdet inte är tillgängligt, returneras standardvärdet som skickats som en parameter till denna metod.

Exempel 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

Arbetsschema: {måndag=arbetsdag, torsdag=arbetsdag, fredag=arbetsdag, söndag=fridag, onsdag=arbetsdag, tisdag=arbetsdag, lördag=fridag} Är söndag en arbetsdag? Off Day Är julen en arbetsdag? Nationalhelgdag Är påsken en arbetsdag? National dag

Varför använda metoden getOrDefault() och inte get()?

Den enkla metoden get() i Java används för att få värdet på den begärda nyckeln i HashMap . Om nyckeln hittas returneras värdet. Om nyckeln inte hittas, returneras "null". Metoden getOrDefault() är att föredra framför den enkla get-metoden när ett standardvärde förväntas returnera. Här är ett enkelt exempel för din förståelse.

Exempel 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

Helgdagar: {söndag=true, Saturday=true} Är julen en helgdag? sant Är julen en högtid? null
Du kan se skillnaden mellan getOrDefault och get -metoden. Som utskrivet i utdata returnerar den första metoden standardvärdet om nyckeln inte hittas medan den senare returnerar null.

Slutsats

I slutet av det här inlägget måste du vara bekant med en HashMaps getOrDefault()- metod . Du rekommenderas att lära dig genom att öva. Kolla gärna detta inlägg igen om du fastnar på vägen. Tills dess, fortsätt öva och fortsätt växa!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION