알고리즘

TreeMap

  • <키, 값>의 Map 객체를 저장한다
  • 값 추가/삭제/수정 시 자동으로 정렬을 실시한다
  • 이진탐색트리 자료구조를 갖는다

주요 함수

  • HashMap과 비슷하게 사용 가능 (단, HashMap은 값을 추가해도 정렬을 실시하지 않는다는 차이점이 있다)
  • ceilingKey(target): target보다 큰 키 중, 가장 가까운 값을 찾는다
  • flooringKey(target): target보다 작은 키 중, 가장 가까운 값을 찾는다

참고 가능한 코드

import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

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

        // TreeMap Entry 객체 저장
        treeMap.put(1, "부산");
        treeMap.put(2, "인천");
        treeMap.put(3, "대구");
        treeMap.put(4, "대전");
        treeMap.put(5, "광주");
        treeMap.put(6, "울산");

        // 저장된 총 Entry 수 얻기
        int size = treeMap.size();
        System.out.println(size);

        // 객체 찾기
        Object object = treeMap.get(1);
        System.out.println(object);

        // key를 요소로 가지는 Set 생성
        Set<Integer> keySet = treeMap.keySet();
        System.out.println(keySet);

        // value 값 읽기
        Iterator<Integer> keyIterator = keySet.iterator();
        while (keyIterator.hasNext()) {
            Integer key = keyIterator.next();
            String value = treeMap.get(key);
            System.out.println("키: " + key + " 값: " + value);
        }

        // 객체 삭제 후 크기 출력
        treeMap.remove(1);
        System.out.println(treeMap.size());

        // entrySet()을 활용한 value 값 읽기
        for (Map.Entry<Integer, String> entry : treeMap.entrySet()) {
            System.out.println("키: " + entry.getKey() + " 값: " + entry.getValue());
        }
    
        // Entry 객체를 활용한 값 읽기
        Map.Entry<Integer, String> entry = null;
        entry = treeMap.firstEntry();
        System.out.println("키: " + entry.getKey() + " 값: " + entry.getValue());

        entry = treeMap.lastEntry();
        System.out.println("키: " + entry.getKey() + " 값: " + entry.getValue());

        entry = treeMap.higherEntry(5);
        System.out.println("키: " + entry.getKey() + " 값: " + entry.getValue());

        entry = treeMap.lowerEntry(6);
        System.out.println("키: " + entry.getKey() + " 값: " + entry.getValue());

        // 전체 객체 삭제
        treeMap.clear();
    }
}
출처: https://ittrue.tistory.com/154 [IT is True:티스토리]

results matching ""

    No results matching ""