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์ ๋ฑ์ฅ์ผ๋ก ํธ์์ฑ์ ๋๋ผ๊ณ , ํ์์ฑ์ ๊นจ๋ซ๊ณ ์๋ ์์ฆ, ํํํ ๊ณต๋ถํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค๊ฒ ๋ง๋๋ ํฌ์คํ ์ด์๋ค.
๐์ฐธ๊ณ ์ฌ์ดํธ
'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 |