[Java] TreeMap

gyeol·2025년 5월 4일
0

자바

목록 보기
13/23
post-thumbnail

TreeMap

TreeMap은 Java의 java.util 패키지에 포함된 Map 인터페이스로 키를 자동으로 정렬된 상태로 유지하는 이진 검색 트리 기반이다.

  • 자동으로 오름차순 정렬 (키 기준)
  • 키 중복 허용하지 않음
  • 값 중복은 허용
  • 키로 null 허용 안함

주요 메서드

메서드설명
put(K key, V value)값 추가
get(Object key)키에 해당하는 값 반환
remove(Object key)키에 해당하는 항목 제거
firstKey()가장 작은 키 반환
lastKey()가장 큰 키 반환
higherKey(K key)주어진 키보다 큰 키 중 가장 작은 키
lowerKey(K key)주어진 키보다 작은 키 중 가장 큰 키
subMap(K fromKey, K toKey)범위 내 키-값 쌍 반환 (fromKey 포함, toKey 제외)

예시

import java.util.*;

public class TreeMapExample {
    public static void main(String[] args) {
        TreeMap<String, Integer> scores = new TreeMap<>();

        scores.put("kendric", 85);
        scores.put("sza", 92);
        scores.put("scott", 78);

        // 키 기준 오름차순 정렬
        for (Map.Entry<String, Integer> entry : scores.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }

        // 출력 결과:
        // sza : 92
        // scott : 78
        // kendric : 85
    }
}

이때 오름차순 정렬이 아닌, 우리가 지정한 기준으로 정렬할 수도 있다.

TreeMap<String, Integer> descMap = new TreeMap<>(Comparator.reverseOrder());

descMap.put("a", 1);
descMap.put("c", 3);
descMap.put("b", 2);

System.out.println(descMap);  // 출력: {c=3, b=2, a=1}

HashMap vs TreeMap

항목HashMapTreeMap
정렬 여부없음 (순서 보장 안 됨)키 기준 정렬
성능더 빠름 (평균 O(1))느림 (O(log n))
null 키1개 허용허용 안 함
profile
공부 기록 공간 '◡'

0개의 댓글