[java] TreeMap 클래스

TreeMap 클래스는 Java에서 제공되는 컬렉션 클래스 중 하나로, 키-값 쌍을 저장하고 관리하는 자료구조입니다. 이 클래스는 Red-Black Tree를 사용하여 내부적으로 정렬된 순서를 유지합니다. TreeMap은 SortedMap 인터페이스의 구현체로, 트리 기반의 자료구조로부터 가져온 다양한 메서드를 제공합니다.

TreeMap의 특징

  1. 정렬된 순서 유지: TreeMap은 삽입 시 자동으로 정렬된 순서를 유지합니다. 정렬 기준은 키의 값에 따라 이루어집니다.
  2. 키-값 쌍 저장: TreeMap은 키와 값을 한 쌍으로 저장하며, 하나의 키에는 하나의 값을 연결할 수 있습니다.
  3. 고유 키: TreeMap은 키의 중복을 허용하지 않습니다. 따라서 같은 키가 이미 존재하는 경우, 이전에 저장된 값을 덮어쓰게 됩니다.
  4. 검색 및 탐색 효율: Red-Black Tree 기반으로 구현되어 있기 때문에 특정 키를 검색하거나 범위로 값을 탐색하는 등의 작업에 높은 성능을 제공합니다.

TreeMap 사용 방법

TreeMap 클래스는 java.util.TreeMap 패키지에 포함되어 있습니다. TreeMap 객체를 생성한 후, put() 메서드를 사용하여 키-값 쌍을 저장할 수 있습니다. 예를 들어, 다음과 같이 TreeMap을 생성하고 사용할 수 있습니다.

import java.util.TreeMap;

public class Main {
  public static void main(String[] args) {
    // TreeMap 객체 생성
    TreeMap<Integer, String> treeMap = new TreeMap<>();

    // 키-값 쌍 추가
    treeMap.put(1, "Apple");
    treeMap.put(2, "Banana");
    treeMap.put(3, "Orange");

    // 키로 값 조회
    String value = treeMap.get(2);
    System.out.println(value); // Output: Banana
  }
}

위의 예제에서는 TreeMap 객체를 생성한 후, put() 메서드를 사용하여 키-값 쌍을 저장하고, get() 메서드를 사용하여 특정 키에 대한 값을 조회합니다.

주의사항

TreeMap은 정렬된 순서를 유지하기 때문에, 키의 자료형은 Comparable 인터페이스를 구현하고 있어야 합니다. 만약 정렬 기준으로 사용되는 키가 Comparable을 구현하고 있지 않은 경우, Comparator를 사용하여 정렬 기준을 지정할 수 있습니다.

또한, TreeMap은 내부적으로 Red-Black Tree를 사용하기 때문에 삽입, 삭제, 검색 작업에 O(log n)의 시간 복잡도를 가집니다.

참고 자료