Какво представлява методът 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.