💡Map 개념 정리
📘 Key-Value 쌍을 이루는 구조

HashMap
Map<String, Integer> map = new HashMap<>();
map.put("apple", 100);
map.put("banana", 200);

LinkedHashMap
Map<String, Integer> map = new LinkedHashMap<>();
map.put("apple", 100);
map.put("banana", 200);
// 출력 시 입력한 순서 그대로 나옴

TreeMap
Map<String, Integer> map = new TreeMap<>();
map.put("banana", 200);
map.put("apple", 100);
// 출력: apple, banana (오름차순)
정리
| Map 종류 | 정렬 | 중복 허용 | 특징 |
|---|---|---|---|
| HashMap | X | 키 중복 X / 값 중복 O | 가장 많이 씀. 빠름. 순서 없음 |
| LinkedHashMap | O (입력 순서 유지) | 키 중복 X / 값 중복 O | 입력한 순서 유지 |
| TreeMap | O (키 오름차순 정렬) | 키 중복 X / 값 중복 O | 정렬된 상태로 저장 (이진 탐색 트리 기반) |
기본 메서드
Map<String, Integer> map = new HashMap<>();
// 추가 & 수정
map.put("Apple", 100);
map.put("Banana", 200);
// 값 조회
System.out.println(map.get("Apple")); // 100
// 삭제
map.remove("Banana");
// 포함 여부
System.out.println(map.containsKey("Apple")); // true
System.out.println(map.containsValue(100)); // true
// 크기
System.out.println(map.size()); // 1
// 비어있는지
System.out.println(map.isEmpty()); // false
// 순회 (keySet)
for(String key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
// 순회 (entrySet)
for(Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
// 모든 값만 가져오기
System.out.println(map.values());