Qual è il metodo getOrDefault per HashMaps in Java?
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.- La prima è la chiave specificata del tipo Object.
- 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.- getOrDefault (key, defaultValue) è progettato per ottenere il valore corrispondente alla chiave in HashMap .
- 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.
GO TO FULL VERSION