Java์ Map์ ํค-๊ฐ ์์ ๊ด๋ฆฌํ๋ ๋ํ์ ์ธ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
์ด ๊ฒ์๋ฌผ์์๋ Map์ ๋ค๋ฃจ๋ ์ธ ๊ฐ์ง ์ฃผ์ ๋ฉ์๋์ธ keySet(), entrySet(), ๊ทธ๋ฆฌ๊ณ Map.entry()์ ์ฌ์ฉ๋ฒ์ ์์ ์ ํจ๊ป ์ค๋ช ํฉ๋๋ค.๐
1๏ธโฃ Map.keyset() : ๋ชจ๋ ํค ๋ฐํ
keySet() ๋ฉ์๋๋ Map์ ๋ชจ๋ ํค๋ฅผ Set ํํ๋ก ๋ฐํํ์ฌ, ๊ฐ ํค์ ํด๋นํ๋ ๊ฐ์ ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํฉ๋๋ค. Map์ ํค๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๊ฐ์ ธ์ ๊ฐ ํค์ ๋ํด ๊ฐ์ ์กฐํํ๋ ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ธ ๋ฐฉ์์ ๋๋ค.
Map<String, Integer> map = new HashMap<>();
map.put("์ฌ๊ณผ", 10); map.put("๋ธ๊ธฐ", 20); // ํค-๊ฐ ์ ์ถ๊ฐ
// Map์ ๋ชจ๋ ํค๋ฅผ ๋ฐ๋ณตํ๋ฉด์ ๊ฐ์ ์ถ๋ ฅโจ
for (String key : map.keySet()) {
Integer value = map.get(key); // ๊ฐ ํค์ ๋ํ ๊ฐ์ get() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ธ์ด
System.out.println("ํค: " + key + ", ๊ฐ: " + value);
}
2๏ธโฃ Map.entrySet() : ๋ชจ๋ ์ํธ๋ฆฌ ๋ฐํ
entrySet() ๋ฉ์๋๋ Map์ ๋ชจ๋ ํค-๊ฐ ์(์ํธ๋ฆฌ)์ Set ํํ๋ก ๋ฐํํ์ฌ, ๊ฐ ์ํธ๋ฆฌ(Map.Entry)์ ํค์ ๊ฐ์ ๋ณด๋ค ์ง์ ์ ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๊ฒ ํด์ค๋๋ค. entrySet()์ ์ฌ์ฉํ๋ฉด ๊ฐ Map.Entry ๊ฐ์ฒด์์ ํค์ ๊ฐ์ ๋์์ ๊ฐ์ ธ์ฌ ์ ์์ด ๋์ฑ ํจ์จ์ ์ ๋๋ค.
Map<String, Integer> map = new HashMap<>();
map.put("์ฌ๊ณผ", 10); map.put("๋ธ๊ธฐ", 20); // ํค-๊ฐ ์ ์ถ๊ฐ
// Map์ ๋ชจ๋ ์ํธ๋ฆฌ๋ฅผ ๋ฐ๋ณตํ๋ฉด์ ํค์ ๊ฐ์ ์ถ๋ ฅโจ
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("ํค: " + entry.getKey() + ", ๊ฐ: " + entry.getValue());
}
3๏ธโฃ Map.entry() : ๊ฐ๋ณ ์ํธ๋ฆฌ ์์ฑ
Java 9 ์ด์์์๋ Map.entry() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ณ Map.Entry ๊ฐ์ฒด๋ฅผ ๊ฐํธํ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด Map ๊ฐ์ฒด๋ฅผ ๋ฐ๋ก ์์ฑํ์ง ์๊ณ ๋ ๊ฐ๋ณ ํค-๊ฐ ์์ ๋ค๋ฃฐ ์ ์์ด, ์ฝ๋๊ฐ ๋์ฑ ๊ฐ๊ฒฐํด์ง๋๋ค.
// Map.Entry ๊ฐ์ฒด๋ฅผ ๊ฐ๊ฐ ์์ฑโจ
Map.Entry<String, Integer> entry1 = Map.entry("์ฌ๊ณผ", 10);
Map.Entry<String, Integer> entry2 = Map.entry("๋ธ๊ธฐ", 20);
// ๊ฐ ์ํธ๋ฆฌ์ ํค์ ๊ฐ์ ์ถ๋ ฅ
System.out.println("ํค: " + entry1.getKey() + ", ๊ฐ: " + entry1.getValue()); // ๊ฒฐ๊ณผ: ํค: ์ฌ๊ณผ, ๊ฐ: 10
System.out.println("ํค: " + entry2.getKey() + ", ๊ฐ: " + entry2.getValue()); // ๊ฒฐ๊ณผ: ํค: ๋ธ๊ธฐ, ๊ฐ: 20
๐ก ๊ฒฐ๋ก
keySet()๊ณผ entrySet()์ Map์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๋ค๋ฃฐ ๋ ์ ์ฉํ๋ฉฐ, Map.entry()๋ Java 9 ์ด์์์ ํน์ ์ํธ๋ฆฌ๋ฅผ ๊ฐํธํ๊ฒ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ๋ค์ ์ดํดํ๊ณ ํ์ฉํจ์ผ๋ก์จ Java ํ๋ก๊ทธ๋๋ฐ์์ Map์ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.๐๐ป
'โJava' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Boot] ํ๋ก์ ํธ ํ์ ์์กด์ฑ(Spring Web, Lombok, DevTools, Thymeleaf) (2) | 2024.09.03 |
---|---|
[Java] ์ปฌ๋ ์ ํ๋ ์์ํฌ(List, Queue, Set, Map) (0) | 2024.09.01 |
[Java] JPA, JPQL, QueryDSL ๊ฐ๋ ์ ๋ฆฌ (1) | 2024.08.22 |
[Spring Boot] Log4j2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก SQL ์ฟผ๋ฆฌ ๋ก๊น ์ค์ ํ๊ธฐ (0) | 2024.08.21 |