
자바 프로그래밍에서 Map 인터페이스는 키와 값을 쌍으로 저장하는 자료구조를 제공합니다. 이 인터페이스는 고유한 키를 기반으로 데이터를 효율적으로 관리할 수 있도록 도와줍니다. HashMap, LinkedHashMap, TreeMap이 대표적인 구현체입니다
HashMap은 해시 테이블을 기반으로 하여, 빠른 검색과 삽입, 삭제를 지원하는 자료구조입니다. 키와 값의 순서를 보장하지 않습니다.
특징:
Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("Java", 1);
hashMap.put("Python", 2);
hashMap.put("C++", 3);
System.out.println(hashMap.get("Java")); // 출력: 1
LinkedHashMap은 해시 테이블과 이중 연결 리스트를 기반으로 하여, 삽입 순서를 유지하는 자료구조입니다.
특징:
Map<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("Java", 1);
linkedHashMap.put("Python", 2);
linkedHashMap.put("C++", 3);
System.out.println(linkedHashMap.get("Java")); // 출력: 1
TreeMap은 이진 검색 트리를 기반으로 하여 키의 자연 순서 또는 제공된 비교자에 따라 정렬된 순서를 유지하는 자료구조입니다.
특징:
Map<String, Integer> treeMap = new TreeMap<>();
treeMap.put("Java", 1);
treeMap.put("Python", 2);
treeMap.put("C++", 3);
System.out.println(treeMap.get("Java")); // 출력: 1
| 특성 | HashMap | LinkedHashMap | TreeMap |
|---|---|---|---|
| 검색 속도 | O(1) | O(1) | O(log n) |
| 삽입 속도 | O(1) | O(1) | O(log n) |
| 삭제 속도 | O(1) | O(1) | O(log n) |
| 순서 유지 | X | O | O |
| 정렬 | X | X | O |
| null 키 허용 | O | O | X |
Map 인터페이스는 자바에서 키-값 쌍의 데이터를 효율적으로 관리할 수 있도록 도와주는 강력한 도구입니다. HashMap은 가장 일반적으로 사용되며, 빠른 검색과 삽입이 필요할 때 유용합니다. LinkedHashMap은 데이터의 삽입 순서를 유지하고자 할 때 적합합니다. TreeMap은 키의 자연 순서나 사용자 정의 순서에 따라 정렬된 데이터를 필요로 할 때 유용합니다.