מהי שיטת getOrDefault עבור HashMaps ב-Java?
מהי הכותרת של שיטת getOrDefault()?
הכותרת הרגילה עבור שיטת getOrDefault מוגדרת כדלקמן.
hashMap.getOrDefault(Object key, Object defaultValue)
הפרמטרים עברו
כותרת השיטה לוקחת שני ארגומנטים. הם מתגייסים יחד עם סוגי הנתונים שלהם למטה.- הראשון הוא המפתח שצוין מסוג Object.
- סוג האובייקט האחר הוא פרמטר הוא defaultValue המועבר עבור מפתח האובייקט כארגומנט המתודה.
עבודה של שיטת getOrDefault()
אתה יכול להבין את פעולתה של שיטת getOrDefault() בשני השלבים הפשוטים הבאים.- ה- getOrDefault(key, defaultValue) נועד לקבל את הערך המתאים למפתח ב- HashMap .
- אם יש ערך המשויך למפתח , אז הערך הזה מוחזר. מצד שני, אם הערך אינו זמין, מוחזר ה- defaultValue שהועבר כפרמטר לשיטה זו.
דוגמה 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);
}
}
תְפוּקָה
לוח זמנים עבודה: {שני=יום עבודה, חמישי=יום עבודה, שישי=יום עבודה, ראשון=יום חופש, רביעי=יום עבודה, שלישי=יום עבודה, שבת=יום חופש} האם יום ראשון הוא יום עבודה? יום חופש האם חג המולד הוא יום עבודה? חג לאומי האם חג הפסחא הוא יום עבודה? חג לאומי
מדוע להשתמש בשיטת getOrDefault() ולא get()?
השיטה הפשוטה get() ב-Java משמשת כדי לקבל את הערך של המפתח המבוקש ב- HashMap . אם המפתח נמצא, הערך מוחזר. במקרה שהמפתח לא נמצא, "null" מוחזר. שיטת getOrDefault() מועדפת על פני שיטת get הפשוטה כאשר ערך ברירת מחדל צפוי לחזור. הנה דוגמה פשוטה להבנתך.דוגמה 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);
}
}
תְפוּקָה
חגים: {Sunday=true, Saturday=true} האם חג המולד הוא חג? נכון האם חג המולד הוא חג? ריק
אתה יכול לראות את ההבדל בין getOrDefault לשיטת get . כפי שהודפס בפלט, השיטה הראשונה מחזירה את ערך ברירת המחדל אם המפתח לא נמצא בעוד שהאחרונה מחזירה null.
GO TO FULL VERSION