๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ž๋ฐ”

์ž๋ฐ”์—์„œ Map ์ˆœํšŒ ๋ฐฉ๋ฒ•

by moon101 2024. 1. 27.

๐Ÿฃ Java์—์„œ Map ์ˆœํšŒํ•˜๋Š” ๋ฐฉ๋ฒ• ๐Ÿฃ

์ž๋ฐ”์—์„œ Map์œผ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆด ๋•Œ entrySet(), keySet()  ๊ทธ๋ฆฌ๊ณ  values()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ’์„ ๊บผ๋‚ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค. 

  • entrySet() : Map.Entry ํด๋ž˜์Šค์˜ ์›์†Œ ๋ฐ˜ํ™˜. entry.getKey() ๋Š” key๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , entry.getValue()๋Š” value ๋ฆฌํ„ด
  • keySet() : ๋งต์— ์žˆ๋Š” ๋ชจ๋“  keys๋ฅผ set์œผ๋กœ ๋ฐ˜ํ™˜
  • values() : ๋งต์— ์žˆ๋Š” ๋ชจ๋“  values๋ฅผ set์œผ๋กœ ๋ฐ˜ํ™˜

Map ์„ธํŒ… 

    Map<Integer, String> map = new HashMap<>();
    @BeforeEach
    void setUp() {
        map.put(1, "๋”ธ๊ธฐ");
        map.put(2, "์‚ฌ๊ณผ");
        map.put(3, "๊ทค");
        map.put(4, "๋ฐ”๋‚˜๋‚˜");
        map.put(5, "์ˆ˜๋ฐ•");
    }

 

 

for๋ฌธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

1. entrySet()

    @Test
    void forEachAndEntrySet() {
        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }

 

2. keySet()

 @Test
    void forEachAndKeySet() {
        for (Integer key : map.keySet()) {
            System.out.println(key + " : " + map.get(key));
        }
    }

 

3. values()

    @Test
    void forEachAndValues() {
        for (String value : map.values()) {
            System.out.println("value : " + value);
        }
    }

 

Iterator ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

4. entrySet()

    @Test
    void IteratorAndEntrySet() {
        Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<Integer, String> entry = iterator.next();
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }

 

5. keySet()

    @Test
    void IteratorAndKeySet() {
        Iterator<Integer> iterator = map.keySet().iterator();
        while (iterator.hasNext()) {
            Integer key = iterator.next();
            System.out.println(key + " : " + map.get(key));
        }
    }

 

6. values()

    @Test
    void IteratorAndValues() {
        Iterator<String> iterator = map.values().iterator();
        while (iterator.hasNext()) {
            String value = iterator.next();
            System.out.println("value : " + value);
        }
    }

 

 

๋žŒ๋‹ค์™€ ์ŠคํŠธ๋ฆผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

7. forEach()์™€ ๋žŒ๋‹ค

    @Test
    @DisplayName("๋žŒ๋‹ค_key value ๋‘๊ฐœ ๋‹ค ์กฐํšŒ")
    void lambdaAndKeyValue() {
        map.forEach((k, v) -> System.out.println((k + " : " + v)));
    }

    @Test
    @DisplayName("๋žŒ๋‹ค_key๋กœ ์กฐํšŒ")
    void lambdaAndKeys() {
        map.keySet().forEach(k -> System.out.println((k + " : " + map.get(k))));
    }

    @Test
    @DisplayName("๋žŒ๋‹ค_value๋งŒ ์กฐํšŒ")
    void lambdaAndValues() {
        map.values().forEach(v -> System.out.println(("value : " + v)));
    }

 

8. ์ŠคํŠธ๋ฆผ API 

    @Test
    void streamApi() {
        map.entrySet().stream()
                .forEach(e -> System.out.println(e.getKey() + " : " + e.getValue()));
    }

 

 

์ถœ๋ ฅ๊ฒฐ๊ณผ

entrySet(),  keySet() ๊ฒฐ๊ณผ values() ๊ฒฐ๊ณผ

 

entrySet() ๋˜๋Š” keySet()์„ ํ™œ์šฉํ•  ๊ฒฝ์šฐ key, value ๋‘˜ ๋‹ค ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ (key๋กœ value๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ)

values()๋Š” ๊ฐ’๋งŒ ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋งŒ์•ฝ, key๋ž‘ value ๋‘˜ ๋‹ค ํ•„์š”ํ•  ๊ฒฝ์šฐ entrySet()์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด keySet()์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ๋” ์ข‹์€๋ฐ, value๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ์œ„ํ•ด get() ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ํ˜ธ์ถœํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

 

 

 

 

์ฐธ๊ณ ์ž๋ฃŒ

1. https://www.baeldung.com/java-iterate-map

 

 

๋Œ“๊ธ€