CS/Data Structure

[CS][Data Structure] 해시 셋 (HashSet)

Jyuni 2023. 8. 20. 21:26

HashSet 이란?

HashSet은 Set 인터페이스를 구현한 구현한 자료구조로, 중복된 데이터를 허용하지 않는 특징을 가집니다.

HashSet 기본 원리

HashSet은 값을 저장할 때 내부적으로 HashMap을 사용하며 키로 사용할 객체와 함께 저장합니다. 값은 기존에 존재하는 동일한 객체를 나타내는 상수를 사용합니다. 
이를 통해 HashSet은 중복된 데이터를 저장하지 않는 고유한 특성을 가집니다.

HashSet 연산

삽입 : add(element)

삭제 : remove(element)

데이터 들어있는지 확인 : contains(element)

크기 확인 : size()

비어있는지 확인 : isEmpty()

전체 출력 : iterator() 또한 for(T element : set)으로 출력

HashSet 장점

  1. 중복을 허용하지 않으므로 유일한 값을 저장하고 처리하는 경우에 유리합니다.
  2. HashSet은 내부적으로 HashMap을 사용해 데이터를 저장하기 때문에 검색속도가 O(1)로 빠릅니다.
    하지만 해시 충돌로 인해 최악의 경우 O(n)이 될 수도 있습니다.

HashSet 단점

  1. 데이터가 들어온 순서대로 값을 저장하지 않습니다.
  2. 멀티 쓰레드 환경에서 동기화를 수동으로 구현해야 합니다.