본문 바로가기

Java

자바 HashSet

기본 개념

  • HashSet은 자바의 java.util 패키지에 있는 클래스로, 집합을 구현
  • 이 클래스는 Set 인터페이스를 구현하며, 중복된 요소를 허용하지 않는다.
  • 내부적으로 HashMap을 사용하여 요소를 저장

주요 특징

  • 중복 불허: 같은 값을 가진 요소는 한 개만 저장. 즉, 모든 요소가 유일하다.
  • 순서 보장 없음: 요소들은 특정한 순서로 저장되거나 반환되지 않는다.
  • null 값 허용: HashSet은 하나의 null 값을 저장할 수 있다.
  • 높은 성능: 요소의 추가, 삭제, 검색 등의 연산이 빠르게 처리된다.

주요 메소드

  • add(E e): 집합에 요소를 추가
  • remove(Object o): 집합에서 지정된 요소를 제거
  • contains(Object o): 집합에 특정 요소가 포함되어 있는지 확인
  • size(): 집합에 저장된 요소의 수를 반환
  • clear(): 집합의 모든 요소를 제거
  • isEmpty(): 집합이 비어있는지 확인

선언 방식

HashSet<DataType> set = new HashSet<DataType>();

//초기 용량 지정
HashSet<String> setWithInitialCapacity = new HashSet<String>(10);

 

 

예제 코드

import java.util.HashSet;

public class HashSetExample {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();

        // 요소 추가
        set.add("Apple");
        set.add("Banana");
        set.add("Cherry");

        // 중복 요소 추가 시도
        set.add("Apple");

        // 요소 출력
        System.out.println("HashSet: " + set);

        // 요소 포함 여부 확인
        if (set.contains("Banana")) {
            System.out.println("Banana is in the set.");
        }

        // 요소 제거
        set.remove("Cherry");

        // 집합 크기 출력
        System.out.println("Size of HashSet: " + set.size());
    }
}

 

출력 결과

HashSet: [Apple, Cherry, Banana]
Banana is in the set.
Size of HashSet: 2

 

 

결론

HashSet은 중복을 허용하지 않는 집합을 구현할 때 매우 유용한 자바 컬렉션 클래스이다. 특히, 요소의 유일성이 중요하고 순서가 중요하지 않은 경우에 적합하다.

'Java' 카테고리의 다른 글

자바 Comparator  (0) 2024.01.24