Java) HashMap์˜ computeIfAbsent์— ๋Œ€ํ•ด(feat. getOrDefault)

2023. 1. 27. 11:08ยทLanguages | Frameworks/Java

getOrDefault

์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์•Œ๊ณ  ์žˆ๋Š” map์˜ ๋ฉ”์„œ๋“œ์ค‘ getOrDefault ๋ฉ”์„œ๋“œ๋Š” ํ‚ค๊ฐ’์ด ์—†์œผ๋ฉด ๋‘๋ฒˆ์งธ ์ธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ ์žˆ๋‹ค.

 

ํ‰์†Œ์— ์ฝ”๋”ฉ ๋ฌธ์ œ๋ฅผ ํ’€๋•Œ, Map<Integer, Integer> ๊ฐ™์€ map์— key, value๋ฅผ ๋„ฃ์–ด์ค„ ๋•Œ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด, 

key๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น key์˜ value๋ฅผ ๊ฐ€์ ธ์™€์„œ +ํ•ด์ฃผ๊ณ , 

key๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด default๊ฐ’์— + ํ•ด์„œ ๊ฐ’์„ ๋„ฃ์–ด์คฌ๋‹ค.

 

์˜ˆ์‹œ
map.put("key", map.getOrDefault("key", "default๊ฐ’") + "๋”ํ•ด์ค„ ๊ฐ’");

 

ํ•˜์ง€๋งŒ value๊ฐ€ ๋ฌธ์ž์—ด ๋˜๋Š” ์ •์ˆ˜ํ˜•์ด ์•„๋‹Œ ๋ฆฌ์ŠคํŠธ์ผ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ๊ฐ’์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ• ๊นŒ?

Map<String, List<String>> strListMap = new HashMap<>();

// ๊ธฐ๋ณธ๊ฐ’ ๋„ฃ๊ธฐ
List<String> list = strListMap.getOrDefault("locale", new ArrayList<>());
list.add("ko_KR");
strListMap.put("locale", list);

์ด๋Ÿฐ์‹์œผ๋กœ ์ž‘์„ฑ์„ ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ, ์ด ์ฝ”๋“œ๋ฅผ computeIfAbsent์™€ ๋žŒ๋‹ค๋กœ ํ•œ์ค„๋กœ ์ค„์ผ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

computeIfAbsent

Map<String, List<String>> strListMap = new HashMap<>();

// ๊ธฐ๋ณธ๊ฐ’ ๋„ฃ๊ธฐ
strListMap.computeIfAbsent("locale", key -> new ArrayList<>()).add("ko_KR");

 

 

Java8๋ฒ„์ „ ์ดํ›„ ๋žŒ๋‹ค์™€ Stream API์˜ ๋“ฑ์žฅ์œผ๋กœ ํŽธ์˜์„ฑ์„ ๋А๋ผ๊ณ , ํ•„์š”์„ฑ์„ ๊นจ๋‹ซ๊ณ  ์žˆ๋Š” ์š”์ฆ˜, ํ‹ˆํ‹ˆํžˆ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค๊ฒŒ ๋งŒ๋“œ๋Š” ํฌ์ŠคํŒ…์ด์—ˆ๋‹ค.

 

 

 

๐Ÿ“—์ฐธ๊ณ ์‚ฌ์ดํŠธ

Java HashMap ๊ตฌํ˜„์— ๋Œ€ํ•ด (Effective java 3th - Item11)

'Languages | Frameworks > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Java) 2์ฐจ์› ๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ(Arrays.sort ๋žŒ๋‹ค์‹)  (0) 2023.01.27
Java) List์™€ ArrayList์˜ ์ฐจ์ด?  (0) 2022.11.08
JPA, JPQL  (0) 2022.09.27
์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…๋ฅ˜์™€ ์ถ”์ฒœ(SHA, PBKDF2, Bcrypt) + Java ์ ์šฉ ์ƒ˜ํ”Œ  (0) 2022.07.18
๊ฒŒ์‹œํŒ ๊ธ€์ด ์ค‘๊ฐ„์— ์‚ญ์ œ์‹œ > ๋ฒˆํ˜ธ ์ดˆ๊ธฐํ™”ํ›„ ์ธ๋ฑ์‹ฑ ํ•˜๋Š” ๋ฐฉ๋ฒ•  (0) 2022.07.13
'Languages | Frameworks/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Java) 2์ฐจ์› ๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ(Arrays.sort ๋žŒ๋‹ค์‹)
  • Java) List์™€ ArrayList์˜ ์ฐจ์ด?
  • JPA, JPQL
  • ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…๋ฅ˜์™€ ์ถ”์ฒœ(SHA, PBKDF2, Bcrypt) + Java ์ ์šฉ ์ƒ˜ํ”Œ
_๊ฑฐ๋ˆ„
_๊ฑฐ๋ˆ„
๋ธ”๋กœ๊ทธ ์ด์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค! https://velog.io/@pigonhair/posts
  • _๊ฑฐ๋ˆ„
    ๊ฑฐ๋ˆ„๋„ค๋ฃธ๐Ÿ”‘
    _๊ฑฐ๋ˆ„
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๊ฑฐ๋ˆ„๋„ค๋ฃธ (83)
      • Languages | Frameworks (41)
        • Java (10)
        • Spring (23)
        • Docker (8)
      • Git | Github (1)
      • DBMS (4)
        • SQL (4)
      • DevOps | Server (3)
      • OS (6)
        • Linux (6)
      • Algorithm (26)
        • Theory (1)
        • Data Structure (7)
        • BaekJoon (5)
        • Programmers (1)
        • KBro Study (12)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • Github
    • BaekJoon
    • solved class
    • ๋ฐฉ๋ช…๋ก
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
_๊ฑฐ๋ˆ„
Java) HashMap์˜ computeIfAbsent์— ๋Œ€ํ•ด(feat. getOrDefault)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”