본문 바로가기

Java

JAVA - for 문으로 map의 key, value를 탐색하는 방법 (EntrySet 이용)

보통의 경우 for 문으로 map을 순회하고 싶을때는 아래처럼 key 를 받아오고, 이 key를 이용해서 value 를 다시 조회하는 형태로 했다.

Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");

Set<String> keys = map.keySet();
for(String key : keys) {
    String value = map.get(key);
    System.out.println(key + " : " + value);
}

이 방법은 value를 찾아와야 하는 단계를 더 거치게 되어 비 효율적이고 뭔가 깔끔치 못하다.

Key, Value 를 포함하고 있는 데이터 타입인 Entry를 이용하면 효율적이고 깔끔한(?) 코드를 작성 할 수 있다.

Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");

Set<Entry<String, String>> entirySet = map.entrySet();
for (Entry<String, String> e: entirySet) {
    System.out.println(e.getKey() + " : " + e.getValue());
}

이렇게 하면 key 값으로 value를 찾지 않아도 전체 값들을 모두 탐색 할 수 있다.

반응형