CodeGym /จาวาบล็อก /สุ่ม /เมธอด 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. อันแรกคือคีย์ ที่ระบุ ของประเภทวัตถุ
  2. ชนิดของออบเจกต์อื่นคือพารามิเตอร์เป็นค่าดีฟอลต์ที่ส่งผ่านสำหรับคีย์ออบเจกต์เป็นอาร์กิวเมนต์เมธอด

การทำงานของเมธอด 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 คุณควรเรียนรู้โดยการฝึกฝน อย่าลังเลที่จะตรวจสอบโพสต์นี้อีกครั้งหากคุณติดขัดระหว่างทาง จนกว่าจะถึงตอนนั้น จงฝึกฝนและเติบโตต่อไป!
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION