Map

  • Map은 Key와 Value를 한 쌍으로 갖는 자료형

  • list나 array와 달리 순차적(sequential) 해당 요소 값을 구하지 않고 Key를 통해 Value를 얻음

  • Java의 인터페이스

  • 구현한 자료형들로는 HashMap, LinkedHashMap, TreeMap 등이 있음



HashMap

  • 가장 간단한 Map

  • import java.util.HashMap; 후 사용

  • 선언

import java.util.HashMap;

HashMap<String, String> map = new HashMap<String, String>();
  • 값 입력 (낱개)
// put(Key, Value)
map.put("sunny", "화창");
map.put("cloudy", "구름");
  • 값 입력 (한번에)
map.putAll(Map형식);
  • 값 출력(Key 기반)
// get(key)
System.out.println(map.get("sunny"));
  • Key가 있는지 True/False로 조회
// containsKey(key)
System.out.println(map.containsKey("sunny"));
  • Value가 있는지 True/False로 조회
// containsValue(value)
System.out.println(map.containsValue("화창");
  • 값 제거(Key 기반)하면서 Key + Value 제거 후 Value 리턴
System.out.println(map.remove("cloudy")); // 구름
  • Map의 갯수(size) 출력
System.out.println(map.size());
  • HashMap 초기화
map.clear();
  • 빈 해쉬맵인지 확인(True/False)
map.isEmpty();
  • Set 변환, Key=Value 형식
map.entrySet();
  • Set 변환, Key만
map.keySet();
  • 호출 방법 1. for each <key>
for (String key : map.keySet()) {
   System.out.println("Key = " + key);
   Sysetm.out.println("Value = " + map.get(key));
}
  • 호출 방법 2. Map 이용 for each <Key : Value>
import java.util.Map;

for (Map.Entry<String, String> e : map.entrySet()) {
    System.out.println("Key = " + e.getKey();
    System.out.println("Value = " + e.getValue();
}
  • 호출 방법 3. Iterator 이용
import java.util.Iterator;

Iterator<String> keys = map.keySet().iterator();
while (keys.hasNext()) {
    String key = keys.next();
    System.out.println("Key = " + key);
    System.out.println("Value = " + map.get(key));
}



LinkedHashMap

  • 입력 순서를 보장하는 Map



TreeMap

  • 입력된 key로 sort 됨