Qu'est-ce que la méthode getOrDefault pour HashMaps en Java?
Quel est l'en-tête de la méthode getOrDefault()?
L'en-tête normal de la méthode getOrDefault est défini comme suit.
hashMap.getOrDefault(Object key, Object defaultValue)
Paramètres passés
L'en-tête de la méthode prend deux arguments. Ils sont répertoriés avec leurs types de données ci-dessous.- La première est la clé spécifiée du type d'objet.
- L'autre type d'objet est le paramètre defaultValue passé pour la clé d'objet en tant qu'argument de méthode.
Fonctionnement de la méthode getOrDefault()
Vous pouvez comprendre le fonctionnement de la méthode getOrDefault() dans les deux étapes simples suivantes.- Le getOrDefault(key, defaultValue) est conçu pour obtenir la valeur correspondant à la clé dans le HashMap .
- Si une valeur est associée à la clé , cette valeur est renvoyée. En revanche, si la valeur n'est pas disponible, alors la defaultValue passée en paramètre à cette méthode est retournée.
Exemple 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);
}
}
Sortir
Horaires de travail : {lundi=jour ouvrable, jeudi=jour ouvré, vendredi=jour ouvré, dimanche=jour chômé, mercredi=jour ouvré, mardi=jour ouvré, samedi=jour chômé}
Le dimanche est-il un jour ouvré ? Jour férié
Noël est-il un jour ouvrable ? Fête nationale
Est-ce que Pâques est un jour ouvrable ? Fête nationale
Pourquoi utiliser la méthode getOrDefault() et non get() ?
La simple méthode get() en Java est utilisée pour obtenir la valeur de la clé demandée dans le HashMap . Si la clé est trouvée, la valeur est renvoyée. Si la clé n'est pas trouvée, "null" est renvoyé. La méthode getOrDefault() est préférée à la simple méthode get lorsqu'une valeur par défaut doit être renvoyée. Voici un exemple simple pour votre compréhension.Exemple 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);
}
}
Sortir
Jours fériés : {Sunday=true, Saturday=true}
Noël est-il un jour férié ? true
Noël est-il un jour férié ? nul
Vous pouvez voir la différence entre la méthode getOrDefault et la méthode get . Comme imprimé dans la sortie, la première méthode renvoie la valeur par défaut si la clé n'est pas trouvée tandis que la seconde renvoie null.
GO TO FULL VERSION