반응형
--- HashMap vs TreeMap

HashMap과 TreeMap의 비교

주요 비교

특징 HashMap TreeMap
데이터 구조 해시 테이블(Hash Table) 기반으로 키-값을 저장합니다. 이진 탐색 트리(Red-Black Tree) 기반으로 키-값을 저장합니다.
정렬 여부 키 순서를 보장하지 않습니다. 키를 자동으로 정렬(기본 오름차순)합니다. (사용자 정의 Comparator 가능)
시간 복잡도 삽입/검색/삭제: 평균적으로 O(1)
최악의 경우(충돌): O(n)
삽입/검색/삭제: O(log n)
null 허용 여부 키: 1개의 null 허용
값: 다수의 null 허용
키: null 허용하지 않음
값: 다수의 null 허용
성능 일반적으로 빠름 (해시 기반 접근). 느림 (트리 기반 접근).
적합한 사용 사례 빠른 검색/삽입/삭제가 중요한 경우. 데이터가 정렬된 상태로 필요하거나 범위 검색이 필요한 경우.

예제 코드

HashMap 사용 예제

    

import java.util.HashMap; public class HashMapExample { public static void main(String[] args) { HashMap hashMap = new HashMap<>(); hashMap.put(1, "One"); hashMap.put(2, "Two"); hashMap.put(3, "Three"); System.out.println("HashMap: " + hashMap); System.out.println("Value for key 2: " + hashMap.get(2)); hashMap.remove(2); System.out.println("After removal: " + hashMap); System.out.println("Keys: " + hashMap.keySet()); System.out.println("Values: " + hashMap.values()); } }

출력:


HashMap: {1=One, 2=Two, 3=Three}
Value for key 2: Two
After removal: {1=One, 3=Three}
Keys: [1, 3]
Values: [One, Three]

    

TreeMap 사용 예제


import java.util.TreeMap;

public class TreeMapExample {
    public static void main(String[] args) {
        TreeMap treeMap = new TreeMap<>();
        treeMap.put(3, "Three");
        treeMap.put(1, "One");
        treeMap.put(2, "Two");

        System.out.println("TreeMap: " + treeMap);
        System.out.println("First Key: " + treeMap.firstKey());
        System.out.println("Last Key: " + treeMap.lastKey());

        System.out.println("SubMap (1 to 3): " + treeMap.subMap(1, 3));
    }
}

	

출력:


TreeMap: {1=One, 2=Two, 3=Three}
First Key: 1
Last Key: 3
SubMap (1 to 3): {1=One, 2=Two}

    
반응형

'프로그래밍 > java' 카테고리의 다른 글

HashMap 순회 에러 방지  (0) 2025.01.02
hashset, treeset 비교  (0) 2024.12.22
[java]keystore 경로, list 확인  (0) 2023.02.02
이클립스 주요 단축키  (0) 2022.12.30
printf() 출력  (0) 2022.12.21

+ Recent posts