TreeMap<K, V> — 레드-블랙 트리 기반의 정렬된 맵
TreeMap<K, V> — 레드-블랙 트리 기반의 정렬된 맵
Red-Black 트리 기반의 NavigableMap 구현이에요. 맵은 키의 자연 순서 또는 맵 생성 시 제공된 Comparator에 따라 정렬돼요.
본문
public class TreeMap<K, V> extends AbstractMap<K, V> implements NavigableMap<K, V>, Cloneable, Serializable
이 구현은 containsKey, get, put, remove 연산에 대해 보장된 log(n) 시간 비용을 제공해요. 알고리즘은 Cormen, Leiserson, Rivest의 Introduction to Algorithms에 나온 것을 각색한 것이에요.
정렬 맵이 Map 인터페이스를 올바르게 구현하려면 유지되는 순서는 equals와 일치해야 해요.
이 구현은 동기화되지 않아요. 여러 스레드가 동시에 맵에 접근하고 그중 하나가 구조적으로 수정한다면 외부에서 동기화해야 해요. 일반적으로 Collections.synchronizedSortedMap으로 감싸는 것이 생성 시점에 가장 좋아요.
주요 생성자
TreeMap()— 키의 자연 순서로 정렬된 새 빈 맵을 생성해요.TreeMap(Comparator<? super K> comparator)— 지정된 comparator로 정렬된 새 빈 맵을 생성해요.TreeMap(Map<? extends K, ? extends V> m)— 기본 맵과 같은 매핑을 가진 새 맵으로, 키의 자연 순서로 정렬해요.TreeMap(SortedMap<K, ? extends V> m)— 기본 정렬 맵과 같은 매핑과 순서를 가진 새 맵을 생성해요.
주요 메서드
put(K key, V value)— 지정된 키-값 매핑을 추가해요.get(Object key)— 지정된 키에 매핑된 값을 반환해요.containsKey(Object key)— 지정된 키가 있으면true를 반환해요.firstKey()/lastKey()— 현재 첫(가장 낮은)·마지막(가장 높은) 키를 반환해요.firstEntry()/lastEntry()— 첫·마지막 키-값 매핑을 반환해요.pollFirstEntry()/pollLastEntry()— 첫·마지막 매핑을 제거하고 반환해요.lowerKey(...)/floorKey(...)/ceilingKey(...)/higherKey(...)— 키를 기준으로 이웃 키를 반환해요.subMap(...)/headMap(...)/tailMap(...)— 부분 뷰를 반환해요.
이 인터페이스는 Java Collections Framework의 한 구성원이에요.