CodeGym /Java Blog /Willekeurig /HashMap getOrDefault-methode in Java
John Squirrels
Niveau 41
San Francisco

HashMap getOrDefault-methode in Java

Gepubliceerd in de groep Willekeurig

Wat is de getOrDefault-methode voor HashMaps in Java?

“De methode getOrDefault retourneert de waarde die is toegewezen aan de opgegeven sleutel in een HashMap . Als die sleutel niet aanwezig is, wordt een standaardwaarde geretourneerd.”
De klasse java.util.HashMap wordt geleverd met de methode getOrDefault om een ​​extra privilege te geven voor het doorgeven van de standaardwaarde. De standaardwaarde kan in verschillende situaties voor verschillende doeleinden worden gebruikt. Het gebruik en de vergelijking met de eenvoudige get-methode wordt later in dit bericht uitgelegd.

Wat is de header voor de methode getOrDefault()?

De reguliere header voor de methode getOrDefault is als volgt gedefinieerd.

hashMap.getOrDefault(Object key, Object defaultValue)

Parameters geslaagd

De methodekop heeft twee argumenten. Ze worden samen met hun gegevenstypen hieronder vermeld.
  1. De eerste is de opgegeven sleutel van het objecttype.
  2. Het andere objecttype is parameter is defaultValue doorgegeven voor de objectsleutel als het methodeargument.

Werking van de getOrDefault() methode

U kunt de werking van de methode getOrDefault() in de volgende twee eenvoudige stappen begrijpen.
  1. De getOrDefault(key, defaultValue) is ontworpen om de waarde te krijgen die overeenkomt met de sleutel in de HashMap .
  2. Als er een waarde aan de sleutel is gekoppeld , wordt die waarde geretourneerd. Aan de andere kant, als de waarde niet beschikbaar is, wordt de defaultValue die als parameter aan deze methode is doorgegeven, geretourneerd.

voorbeeld 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);
	}

}

Uitgang

Werkschema: {maandag=werkdag, donderdag=werkdag, vrijdag=werkdag, zondag=vrije dag, woensdag=werkdag, dinsdag=werkdag, zaterdag=vrije dag} Is zondag een werkdag? Vrije dag Is Kerstmis een werkdag? Nationale feestdag Is Pasen een werkdag? Nationale feestdag

Waarom de methode getOrDefault() gebruiken en niet de methode get()?

De eenvoudige methode get() in Java wordt gebruikt om de waarde van de gevraagde sleutel in de HashMap op te halen . Als de sleutel wordt gevonden, wordt de waarde geretourneerd. Als de sleutel niet wordt gevonden, wordt "null" geretourneerd. De methode getOrDefault() heeft de voorkeur boven de eenvoudige get-methode wanneer verwacht wordt dat een standaardwaarde wordt geretourneerd. Hier is een eenvoudig voorbeeld voor uw begrip.

Voorbeeld 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);
	}
}

Uitgang

Feestdagen: {zondag=true, zaterdag=true} Is Kerstmis een feestdag? waar Is Kerstmis een feestdag? nul
U kunt het verschil zien tussen de methode getOrDefault en de methode get . Zoals afgedrukt in de uitvoer, retourneert de eerste methode de standaardwaarde als de sleutel niet wordt gevonden, terwijl de laatste null retourneert.

Conclusie

Aan het einde van dit bericht moet u bekend zijn met de methode getOrDefault() van HashMap . U wordt geadviseerd om te leren door te oefenen. Bekijk dit bericht gerust nog een keer als je onderweg vastloopt. Tot die tijd, blijf oefenen en blijf groeien!
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION