반응형
Java HashSet과 TreeSet 비교 및 사용 예제
HashSet vs TreeSet 비교
특징 | HashSet | TreeSet |
---|---|---|
데이터 구조 | 해시 테이블 기반 | 이진 탐색 트리 기반 (Red-Black Tree) |
정렬 여부 | 순서를 보장하지 않음 | 자동 정렬 (기본: 오름차순) |
중복 허용 여부 | 중복 값 허용하지 않음 | 중복 값 허용하지 않음 |
시간 복잡도 | 삽입/삭제/검색: O(1) (평균) | 삽입/삭제/검색: O(log n) |
null 허용 여부 | 1개의 null 값 허용 | null 값을 허용하지 않음 |
사용 사례 | 빠른 검색 및 순서가 중요하지 않은 경우 | 정렬된 데이터나 범위 검색이 필요한 경우 |
HashSet 사용 예제
import java.util.HashSet;
public class HashSetExample {
public static void main(String[] args) {
HashSet set = new HashSet<>();
// 요소 추가
set.add("Apple");
set.add("Banana");
set.add("Orange");
set.add("Apple"); // 중복은 추가되지 않음
// 출력
System.out.println("HashSet: " + set);
// 요소 검색
System.out.println("Contains 'Apple': " + set.contains("Apple"));
// 요소 제거
set.remove("Banana");
System.out.println("After removing 'Banana': " + set);
}
}
출력:
HashSet: [Orange, Apple, Banana]
Contains 'Apple': true
After removing 'Banana': [Orange, Apple]
TreeSet 사용 예제
import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
TreeSet set = new TreeSet<>();
// 요소 추가
set.add("Apple");
set.add("Banana");
set.add("Orange");
set.add("Apple"); // 중복은 추가되지 않음
// 출력
System.out.println("TreeSet: " + set);
// 첫 번째와 마지막 요소 확인
System.out.println("First: " + set.first());
System.out.println("Last: " + set.last());
// 요소 제거
set.remove("Banana");
System.out.println("After removing 'Banana': " + set);
}
}
출력:
TreeSet: [Apple, Banana, Orange]
First: Apple
Last: Orange
After removing 'Banana': [Apple, Orange]
반응형
'프로그래밍 > java' 카테고리의 다른 글
HashMap을 탐색(순회) 방법 (0) | 2025.01.02 |
---|---|
HashMap 순회 에러 방지 (0) | 2025.01.02 |
hashmap vs treemap 비교 (1) | 2024.12.21 |
[java]keystore 경로, list 확인 (0) | 2023.02.02 |
이클립스 주요 단축키 (0) | 2022.12.30 |