TreeMap?

  • 이진트리를 기반으로 한 Map컬렉션 중 하나
  • (키, 값) 으로 저장
  • 저장과 동시에 자동으로 오름차순 정렬됨
  • 문자 타입이라면 유니코드 기준 오름차순 정렬됨
  • 즉시 정렬되기 때문에 추가, 삭제가 많은 경우 성능 저하
  • 그냥 조회만 하는 경우라면 good
  • 특히 범위 검색을 해야할 때 효율적인 자료구조

TreeMap 선언방법

// 교과서 같은 버전
TreeMap<Integer, Map<Integer, Integer>> treeMap = new TreeMap<Integer, Map<Integer, Integer>>();

// 생략 버전
TreeMap<Integer, Map<Integer, Integer>> treeMap1 = new TreeMap<>();

// 기존 트리맵 복사 버전
TreeMap<Integer, Map<Integer, Integer>> treeMap2 = new TreeMap<>(treeMap);

TreeMap 값 추가 방법

treeMap.put(추가할 값);

TreeMap 값 삭제 방법

// 키 1 값 삭제
treeMap,remove(1);

// 모든 값 제거
treeMap.clear;

TreeMap value 빼내기

int value;

// 키 1값의 value
value = treeMap.get(1);

// 최소 키
value = treeMap.firstKey();

// 최대 키
value = treeMap.lasKey();

// 최소 엔트리; 키=값
treeMap.firstEntry();

// 최대 엔트리; 키=값
treeMap.lastEntry();

TreeMap 객체 전체 반환하기

// for문 활용
for (Entry<Integer, Map<Integer, Integer>> entry: treeMap.entrySet()) {
	System.out.println("Key:" + entry.getKey() + "Value:" + entry.getValue());
}

// Iterator 활용
Iterator<Entry<Integer, String>> entries = map.entrySet().iterator();
while(entries.hashNext()) {
	Map.Entry<Integer, String> entry = entries.next();
	System.out.println("Key:" + entry.getKey() + "Value:" + entry.getValues());
}