반응형

 

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

+ Recent posts