Map(맵) 인터페이스
- 키-값 쌍을 저장
- 데이터 검색에 효율적이기에 자주 사용
- 키 중복 불가능, 키와 값은 1대1로만 매치
Map(맵) 클래스
데이터 읽기 성능 : HashMap > LinkedHashMap > TreeMap > HashTable
종류 | HashMap | TreeMap | LinkedHashMap | HashTable |
동기화 여부 | 비동기화 | 비동기화 | 비동기화 | 동기화 |
정렬 순서 | 없음 | key값에 따라 정렬 | 없음 | 없음 |
삽입 순서 유지 | 없음 | 없음 | 삽입 순서 유지 | 없음 |
null 허용 | 키-값 둘 다 허용 | 값만 허용 | 키-값 둘 다 허용 | 허용 X |
성능 | 평균 O(1) | 평균 O(log n) | 평균 O(1) | 평균 O(1) |
자바에서 큐의 주요 메서드
- put(K key, V value): 지정된 키와 값을 맵에 추가
- get(Object key): 지정된 키와 연결된 값을 반환
- containsKey(Object key): 맵에 지정된 키가 포함되어 있는지 확인
- containsValue(Object value): 맵에 지정된 값이 포함되어 있는지 확인
- remove(Object key): 지정된 키로 맵에서 요소를 제거
- size(): 맵에 있는 키-값 쌍의 수를 반환
- keySet(): 맵의 모든 키를 포함하는 Set을 반환
- values(): 맵의 모든 값을 포함하는 Collection을 반환
- entrySet(): 맵의 모든 키-값 쌍을 포함하는 Set을 반환
- isEmpty(): 맵이 비어 있는지 확인
- clear(): 맵의 모든 요소를 제거
예시
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
// put: 요소 추가
map.put("Apple", 1);
map.put("Banana", 2);
map.put("Cherry", 3);
// get: 키로 값 가져오기
System.out.println("Apple: " + map.get("Apple"));
// containsKey: 키가 존재하는지 확인
System.out.println("Contains 'Banana': " + map.containsKey("Banana"));
// containsValue: 값이 존재하는지 확인
System.out.println("Contains value 3: " + map.containsValue(3));
// remove: 키로 요소 제거
map.remove("Cherry");
// size: Map의 크기
System.out.println("Map size: " + map.size());
// keySet: 모든 키를 Set으로 반환
System.out.println("Keys: " + map.keySet());
// values: 모든 값을 Collection으로 반환
System.out.println("Values: " + map.values());
// entrySet: 모든 키-값 쌍을 Set으로 반환
System.out.println("Entries: " + map.entrySet());
// isEmpty: Map이 비어 있는지 확인
System.out.println("Is map empty: " + map.isEmpty());
// clear: 모든 요소 제거
map.clear();
System.out.println("Is map empty after clear: " + map.isEmpty());
}
}