java / / 2023. 1. 20. 20:47

Hashmap의 for loop 사용법

Hashmap의 loop 사용법

HashMap의 loop를 사용하는 방법이다.

아래 예제는 다음과 같은 값이 있다고 가정한다.

Map<String, Integer> map = new HashMap<>();
map.put("john", 1);
map.put("mathew", 2);
map.put("jason", 3);
map.put("peter", 4);

1. for loop 사용하기

1.1. entrySet() 사용

entrySet을 사용하여 Map을 순회

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

1.2. keySet() 사용

keySet을 사용하여 Map의 모든 key를 가져와서 Map을 순회

    public void iterateUsingKeySetAndForeach(Map<String, Integer> map) {
        for (String key : map.keySet()) {
            System.out.println(key + ":" + map.get(key));
        }
    }

1.3. values() 사용하여 값 반복하기

Map의 값에만 관심이 있다면

    public void iterateValues(Map<String, Integer> map) {
        for (Integer value : map.values()) {
            System.out.println(value);
        }
    }

2. Iterator

2.1. Iterator와 entrySet()

Iterator와 entrySet을 사용하여 Map을 순회

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

2.2. Iterator와 keySet()

Iterator와 keySet을 사용하여 Map을 순회

public void iterateUsingIteratorAndKeySet(Map<String, Integer> map) {
    Iterator<String> iterator = map.keySet().iterator();
    while (iterator.hasNext()) {
        String key = iterator.next();
        System.out.println(key + ":" + map.get(key));
    }
}

2.3 Iterator와 values() 사용

Iterator와 values를 사용하여 값을 순회

    public void iterateUsingIteratorAndValues(Map<String, Integer> map) {
        Iterator<Integer> iterator = map.values().iterator();
        while (iterator.hasNext()) {
            Integer value = iterator.next();
            System.out.println("value :" + value);
        }
    }

3. Lambda와 Stream API

3.1 forEach()와 lambda

Java 8의 forEach를 사용

    public void iterateUsingLambda(Map<String, Integer> map) {
        map.forEach((k, v) -> System.out.println((k + ":" + v)));
    }

Map의 key를 순회

    public void iterateByKeysUsingLambda(Map<String, Integer> map) {
        map.keySet().forEach(k -> System.out.println((k + ":" + map.get(k))));
    }

values()를 사용

    public void iterateValuesUsingLambda(Map<String, Integer> map) {
        map.values().forEach(v -> System.out.println(("value: " + v)));
    }

3.2 Stream API

stream API를 사용

    public void iterateUsingStreamAPI(Map<String, Integer> map) {
        map.entrySet().stream()
                .forEach(e -> System.out.println(e.getKey() + ":" + e.getValue()));
    }

출처: https://www.baeldung.com/java-iterate-map



반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유