CodeGym /Java Blog /Random-IT /Metodo HashMap getOrDefault in Java
John Squirrels
Livello 41
San Francisco

Metodo HashMap getOrDefault in Java

Pubblicato nel gruppo Random-IT

Qual è il metodo getOrDefault per HashMaps in Java?

“Il metodo getOrDefault restituisce il valore mappato alla chiave specificata in un HashMap . Se quella chiave non è presente, viene restituito un valore predefinito.
La classe java.util.HashMap viene fornita con il metodo getOrDefault per fornire un ulteriore privilegio di passare il valore predefinito. Il valore predefinito può essere utilizzato per scopi diversi in varie situazioni. Il suo utilizzo e confronto con il metodo get semplice verrà spiegato più avanti nel post.

Qual è l'intestazione per il metodo getOrDefault()?

L'intestazione regolare per il metodo getOrDefault è definita come segue.

hashMap.getOrDefault(Object key, Object defaultValue)

Parametri superati

L'intestazione del metodo accetta due argomenti. Sono arruolati insieme ai loro tipi di dati di seguito.
  1. La prima è la chiave specificata del tipo Object.
  2. L'altro tipo di oggetto è il parametro è defaultValue passato per la chiave dell'oggetto come argomento del metodo.

Funzionamento del metodo getOrDefault()

Puoi capire il funzionamento del metodo getOrDefault() nei seguenti due semplici passaggi.
  1. getOrDefault (key, defaultValue) è progettato per ottenere il valore corrispondente alla chiave in HashMap .
  2. Se è presente un valore associato alla chiave , viene restituito tale valore . Se invece il valore non è disponibile, viene restituito il defaultValue passato come parametro a questo metodo.

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

}

Produzione

Orario di lavoro : {Lunedì=Giorno lavorativo, Giovedì=Giorno lavorativo, Venerdì=Giorno lavorativo, Domenica=Giorno di riposo, Mercoledì=Giorno lavorativo, Martedì=Giorno di lavoro, Sabato=Giorno di riposo} La domenica è un giorno lavorativo? Giorno di riposo Natale è un giorno lavorativo? Festa Nazionale La Pasqua è un giorno lavorativo? Festa nazionale

Perché utilizzare il metodo getOrDefault() e non get()?

Il semplice metodo get() in Java viene utilizzato per ottenere il valore della chiave richiesta in HashMap . Se la chiave viene trovata, viene restituito il valore. Nel caso in cui la chiave non venga trovata, viene restituito "null". Il metodo getOrDefault() è preferito rispetto al semplice metodo get quando si prevede che venga restituito un valore predefinito . Ecco un semplice esempio per la tua comprensione.

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

Produzione

Vacanze: {Sunday=true, Saturday=true} Il Natale è una vacanza? true Il Natale è una vacanza? nullo
Puoi vedere la differenza tra getOrDefault e il metodo get . Come stampato nell'output, il primo metodo restituisce il valore predefinito se la chiave non viene trovata mentre il secondo restituisce null.

Conclusione

Alla fine di questo post, devi avere familiarità con il metodo getOrDefault() di HashMap . Si consiglia di imparare con la pratica. Sentiti libero di controllare di nuovo questo post se rimani bloccato lungo la strada. Fino ad allora, continua a esercitarti e continua a crescere!
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION