보통의 경우 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를 찾지 않아도 전체 값들을 모두 탐색 할 수 있다.
반응형