CodeGym/Java блог/Случаен/HashMap getOrDefault метод в Java
John Squirrels
Ниво
San Francisco

HashMap getOrDefault метод в Java

Публикувано в групата

Какво представлява методът getOrDefault за HashMaps в Java?

„ Методът getOrDefault връща стойността, съпоставена към посочения ключ в HashMap . Ако този ключ не присъства, тогава се връща стойност по подразбиране.
Класът java.util.HashMap идва с метода getOrDefault , за да даде допълнителна привилегия за предаване на стойността по подразбиране. Стойността по подразбиране може да се използва за различни цели в различни ситуации. Неговото използване и сравнение с простия метод на получаване ще бъдат обяснени по-късно в публикацията.

Какъв е заглавката за метода getOrDefault()?

Редовният хедър за метода getOrDefault се дефинира по следния начин.
hashMap.getOrDefault(Object key, Object defaultValue)

Параметрите са преминали

Заглавката на метода приема два аргумента. Те са изброени заедно с техните типове данни по-долу.
  1. Първият е посоченият ключ от типа Object.
  2. Другият тип обект е параметърът defaultValue , предаван за ключа на обекта като аргумент на метода.

Работа на метода getOrDefault().

Можете да разберете работата на метода getOrDefault() в следните две прости стъпки.
  1. getOrDefault (key, defaultValue) е предназначен да получи стойността , съответстваща на ключа в HashMap .
  2. Ако има стойност , свързана с ключа , тази стойност се връща. От друга страна, ако стойността не е налична, тогава се връща 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.

Заключение

До края на тази публикация трябва да сте запознати с метода getOrDefault() на HashMap . Съветваме ви да се учите чрез практика. Чувствайте се свободни да проверите тази публикация отново, ако се затрудните по пътя. Дотогава продължавайте да практикувате и да растете!
Коментари
  • Популярен
  • Нов
  • Стар
Трябва да сте влезли, за да оставите коментар
Тази страница все още няма коментари