CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java์˜ HashMap getOrDefault ๋ฉ”์†Œ๋“œ
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java์˜ HashMap getOrDefault ๋ฉ”์†Œ๋“œ

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

Java์˜ HashMaps์— ๋Œ€ํ•œ getOrDefault ๋ฉ”์„œ๋“œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

โ€œ getOrDefault ๋ฉ”์„œ๋“œ๋Š” HashMap ์˜ ์ง€์ •๋œ ํ‚ค์— ๋งคํ•‘๋œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค . ํ•ด๋‹น ํ‚ค๊ฐ€ ์—†์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.โ€
java.util.HashMap ํด๋ž˜์Šค๋Š” getOrDefault ๋ฉ”์†Œ๋“œ ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜์–ด ๊ธฐ๋ณธ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ์ถ”๊ฐ€ ๊ถŒํ•œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค . ๊ธฐ๋ณธ๊ฐ’์€ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ๋‹ค์–‘ํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ get ๋ฉ”์„œ๋“œ์™€์˜ ์‚ฌ์šฉ๋ฒ• ๋ฐ ๋น„๊ต๋Š” ๊ฒŒ์‹œ๋ฌผ ๋’ท๋ถ€๋ถ„์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

getOrDefault() ๋ฉ”์„œ๋“œ์˜ ํ—ค๋”๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

getOrDefault ๋ฉ”์„œ๋“œ ์˜ ์ผ๋ฐ˜ ํ—ค๋”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

hashMap.getOrDefault(Object key, Object defaultValue)

์ „๋‹ฌ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜

๋ฉ”์„œ๋“œ ํ—ค๋”๋Š” ๋‘ ๊ฐœ์˜ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ํ•จ๊ป˜ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.
  1. ์ฒซ ๋ฒˆ์งธ๋Š” ๊ฐ์ฒด ์œ ํ˜•์˜ ์ง€์ •๋œ ํ‚ค ์ž…๋‹ˆ๋‹ค.
  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);
	}

}

์‚ฐ์ถœ

๊ทผ๋ฌด ์ผ์ • : {์›”์š”์ผ=๊ทผ๋ฌด์ผ, ๋ชฉ์š”์ผ=๊ทผ๋ฌด์ผ, ๊ธˆ์š”์ผ=๊ทผ๋ฌด์ผ, ์ผ์š”์ผ=ํœด๋ฌด์ผ, ์ˆ˜์š”์ผ=๊ทผ๋ฌด์ผ, ํ™”์š”์ผ=๊ทผ๋ฌด์ผ, ํ† ์š”์ผ=ํœด์ผ} ์ผ์š”์ผ์ด ๊ทผ๋ฌด์ผ์ธ๊ฐ€์š”? ํœด๋ฌด์ผ ํฌ๋ฆฌ์Šค๋งˆ์Šค๋Š” ์ผํ•˜๋Š” ๋‚ ์ธ๊ฐ€์š”? ๊ตญ๊ฒฝ์ผ ๋ถ€ํ™œ์ ˆ์€ ๊ทผ๋ฌด์ผ์ž…๋‹ˆ๊นŒ? ๊ณตํœด์ผ

get() ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋‹Œ getOrDefault()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Java์˜ ๊ฐ„๋‹จํ•œ get() ๋ฉ”์„œ๋“œ๋Š” 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์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

์ด ๊ฒŒ์‹œ๋ฌผ์„ ๋งˆ์น˜๋ฉด HashMap ์˜ getOrDefault() ๋ฉ”์„œ๋“œ์— ์ต์ˆ™ํ•ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์Šต์„ ํ†ตํ•ด ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋„์ค‘์— ๋ง‰ํžˆ๋ฉด โ€‹โ€‹์ด ๊ฒŒ์‹œ๋ฌผ์„ ๋‹ค์‹œ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋•Œ๊นŒ์ง€ ๊ณ„์† ์—ฐ์Šตํ•˜๊ณ  ๊ณ„์† ์„ฑ์žฅํ•˜์‹ญ์‹œ์˜ค!
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION