[Java] Map / HashMap / LinkedHashMap / TreeMap
by Choi HyeSun
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 됨
Subscribe via RSS