본문 바로가기
자료구조

[자료구조] TreeMap

by eddypark 2023. 11. 10.

- 이진트리를 기반으로 한 Map 컬렉션이다.

- 객체를 저장하면 자동으로 오름차 순으로 정렬된다.


선언

import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String[] arg) {
        TreeMap<Integer, String> map1 = new TreeMap<Integer, String>(); // TreeMap 생성
        TreeMap<Integer, String> map2 = new TreeMap<>(); // new에서 타입 파라미터 생략 가능
        TreeMap<Integer, String> map3 = new TreeMap<>(map1); // map1의 모든 값을 가진 TreeMap 생성
        TreeMap<Integer, String> map4 = new TreeMap<Integer, String>(){{ // 초기값 설정
            put(1, "a");
        }};
    }
}

값 추가

import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String[] arg) {
        TreeMap<Integer, String> map = new TreeMap<Integer, String>(); // TreeMap 생성
        map.put(1, "사과"); // 값 추가
        map.put(2, "복숭아");
        map.put(3, "수박");
    }
}

값 삭제

import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String[] arg) {
        TreeMap<Integer, String> map = new TreeMap<Integer, String>(){{ // 초기값 설정
            map.put(1, "사과"); // 값 추가
            map.put(2, "복숭아");
            map.put(3, "수박");
        }};
        map.remove(1); // key값 1 제거
        map.clear(); // 모든 값 제거
    }
}

단일 값 출력

import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String[] arg) {
        TreeMap<Integer, String> map = new TreeMap<Integer, String>(){{ // 초기값 설정
            map.put(1, "사과"); // 값 추가
            map.put(2, "복숭아");
            map.put(3, "수박");
        }};
        System.out.println(map); // 전체 출력 : {1=사과, 2=복숭아, 3=수박}
        System.out.println(map.get(1)); // key값 1의 value얻기 : 사과 
        System.out.println(map.firstEntry()); // 최소 Entry 출력 : 1=사과 
        System.out.println(map.firstKey()); // 최소 Key 출력 : 1 
        System.out.println(map.lastEntry()); // 최대 Entry 출력 3=수박 
        System.out.println(map.lastKey()); // 최대 Key 출력 : 3 
    }
}

전체 값 출력

import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String[] arg) {
        TreeMap<Integer, String> map = new TreeMap<Integer, String>(){{ // 초기값 설정
            map.put(1, "사과"); // 값 추가
            map.put(2, "복숭아");
            map.put(3, "수박");
        }};
        
        // entrySet() 활용
        for (Entry<Integer, String> entry : map.entrySet()) {
            System.out.println("[Key]:" + entry.getKey() + " [Value]:" + entry.getValue()
        }
        // [Key]:1 [Value]:사과
        // [Key]:2 [Value]:복숭아
        // [Key]:3 [Value]:수박
        
        // KeySet() 활용
        for(Integer i : map.keySet()){ // 저장된 key값 확인
            System.out.println("[Key]:" + i + " [Value]:" + map.get(i));
        }
        // [Key]:1 [Value]:사과
        // [Key]:2 [Value]:복숭아
        // [Key]:3 [Value]:수박
    }
}

'자료구조' 카테고리의 다른 글

[자료구조] HashMap  (0) 2023.11.09
[자료구조] HashTable  (0) 2023.11.09
[자료구조] TreeSet  (0) 2023.11.07
[자료구조] Hash Set  (0) 2023.11.07
[자료구조] Vector  (0) 2023.11.06