TreeMap은 Java 컬렉션 프레임워크에서 제공하는 클래스 중 하나로, 트리 구조를 기반으로 한 맵(Map)을 구현한 클래스입니다. 이 클래스는 키에 대한 정렬을 유지하며, 이진 검색 트리(binary search tree)로 내부적으로 구현되어 있습니다.
1. TreeMap의 특징
- 정렬된 키: TreeMap은 키를 기반으로 정렬된 순서를 유지합니다. 따라서 키의 정렬이 필요한 경우에 유용하게 사용할 수 있습니다.
- 동기화 지원 안 함: TreeMap은 동기화를 지원하지 않습니다. 따라서 멀티스레드 환경에서 사용할 경우 추가적인 동기화가 필요합니다.
- Null 불허용: TreeMap은 키에 null을 허용하지 않습니다. 값은 null이 될 수 있습니다.
- 검색 및 범위 질의: TreeMap은 트리 구조를 기반으로 하기 때문에, 특정 범위의 키를 검색하거나 범위 질의(range query)가 빠릅니다.
2, TreeMap의 주요 메서드
- put(K key, V value): 지정된 키와 값으로 맵에 쌍을 추가합니다.
- get(Object key): 지정된 키에 매핑된 값을 반환합니다.
- remove(Object key): 지정된 키에 매핑된 값을 제거합니다.
- containsKey(Object key): 지정된 키가 맵에 포함되어 있는지 확인합니다.
- containsValue(Object value): 지정된 값이 맵에 포함되어 있는지 확인합니다.
- size(): 맵에 포함된 키-값 쌍의 개수를 반환합니다.
- clear(): 맵에서 모든 키-값 쌍을 제거합니다.
- firstKey(): 맵에서 가장 작은 키를 반환합니다.
- lastKey(): 맵에서 가장 큰 키를 반환합니다.
- ceilingKey(K key): 주어진 키 이상인 키 중 가장 작은 키를 반환합니다.
- floorKey(K key): 주어진 키 이하인 키 중 가장 큰 키를 반환합니다.
TreeMap 사용 예제
import java.util.TreeMap;
import java.util.Map;
public class TreeMapExample {
public static void main(String[] args) {
// TreeMap 생성
Map<String, Integer> treeMap = new TreeMap<>();
// 요소 추가
treeMap.put("One", 1);
treeMap.put("Three", 3);
treeMap.put("Five", 5);
treeMap.put("Two", 2);
treeMap.put("Four", 4);
System.out.println("TreeMap: " + treeMap);
// 요소 조회
System.out.println("Value for key 'Three': " + treeMap.get("Three"));
// 요소 제거
treeMap.remove("Five");
System.out.println("After removing 'Five': " + treeMap);
// 특정 키가 포함되어 있는지 확인
System.out.println("Contains key 'Two'? " + treeMap.containsKey("Two"));
// 특정 값이 포함되어 있는지 확인
System.out.println("Contains value 4? " + treeMap.containsValue(4));
// 크기 확인
System.out.println("Size: " + treeMap.size());
// 맵에서 가장 작은 키 조회
System.out.println("First key: " + treeMap.firstKey());
// 맵에서 가장 큰 키 조회
System.out.println("Last key: " + treeMap.lastKey());
// 주어진 키 이상 중 가장 작은 키 조회
System.out.println("Ceiling key for 'Three': " + treeMap.ceilingKey("Three"));
// 주어진 키 이하 중 가장 큰 키 조회
System.out.println("Floor key for 'Three': " + treeMap.floorKey("Three"));
}
}
위의 예제에서는 TreeMap을 생성하고 여러 메서드를 사용하여 요소를 추가, 제거, 조회, 확인 및 크기를 확인하는 등의 작업을 수행하였습니다. TreeMap은 키의 정렬을 유지하므로, 출력 결과에서 키의 순서가 정렬된 상태로 나타납니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 컬렉션 프레임워크 Collections (0) | 2023.11.19 |
---|---|
자바 컬렉션 프레임워크 Properties (0) | 2023.11.19 |
자바 컬렉션 프레임워크 Hashtable (0) | 2023.11.18 |
자바 컬렉션 프레임워크 HashMap (0) | 2023.11.18 |
자바 컬렉션 프레임워크 TreeSet (0) | 2023.11.18 |