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 장점
- 중복을 허용하지 않으므로 유일한 값을 저장하고 처리하는 경우에 유리합니다.
- HashSet은 내부적으로 HashMap을 사용해 데이터를 저장하기 때문에 검색속도가 O(1)로 빠릅니다.
하지만 해시 충돌로 인해 최악의 경우 O(n)이 될 수도 있습니다.
HashSet 단점
- 데이터가 들어온 순서대로 값을 저장하지 않습니다.
- 멀티 쓰레드 환경에서 동기화를 수동으로 구현해야 합니다.