반응형
---
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 |