CodeGym /وبلاگ جاوا /Random-FA /متد HashMap getOrDefault در جاوا
John Squirrels
مرحله
San Francisco

متد HashMap getOrDefault در جاوا

در گروه منتشر شد

متد getOrDefault برای HashMaps در جاوا چیست؟

« متد getOrDefault مقدار نگاشت شده به کلید مشخص شده در HashMap را برمی گرداند . اگر آن کلید وجود نداشته باشد، یک مقدار پیش فرض برگردانده می شود.
کلاس java.util.HashMap با متد getOrDefault ارائه می شود تا یک امتیاز اضافی برای ارسال مقدار پیش فرض بدهد. مقدار پیش فرض را می توان برای اهداف مختلف در شرایط مختلف استفاده کرد. کاربرد و مقایسه آن با روش ساده دریافت در ادامه پست توضیح داده خواهد شد.

هدر متد ()getOrDefault چیست؟

هدر معمولی متد getOrDefault به صورت زیر تعریف می شود.
hashMap.getOrDefault(Object key, Object defaultValue)

پارامترها پاس شد

هدر متد دو آرگومان می گیرد. آنها به همراه انواع داده هایشان در زیر فهرست شده اند.
  1. اولین مورد کلید مشخص شده از نوع Object است.
  2. نوع دیگر Object پارامتر است defaultValue که برای کلید شی به عنوان آرگومان متد ارسال می شود.

کار با متد ()getOrDefault

شما می توانید عملکرد متد ()getOrDefault را در دو مرحله ساده زیر درک کنید.
  1. getOrDefault (کلید، مقدار پیش فرض) برای دریافت مقدار مربوط به کلید در 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() در جاوا برای بدست آوردن مقدار کلید درخواستی در HashMap استفاده می شود . اگر کلید پیدا شد، مقدار برگردانده می شود. در صورتی که کلید پیدا نشد، "null" برگردانده می شود. هنگامی که انتظار می رود مقدار پیش فرض برگردد، متد getOrDefault () بر روش ساده دریافت ترجیح داده می شود . در اینجا یک مثال ساده برای درک شما آورده شده است.

مثال 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 آشنا باشید . به شما توصیه می شود با تمرین یاد بگیرید. اگر در این راه گیر کردید، می توانید دوباره این پست را بررسی کنید. تا آن زمان، به تمرین و رشد ادامه دهید!
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION