C#

HashSet 이란?

전용 2021. 12. 9. 01:28

게임프로그래밍 서버쪽 공부를 하다가 HashSet이라는 것을 알게 되었습니다.

 

HashSet이란?

고성능 집합 작업을 제공하는 자료구조입니다.

수학 집합 모델의 특성을 가지기 때문에 자료의 중복을 허용하지 않고 요소들이 정렬되어 있지 않는 특징을 가지고 있습니다.

 

Dictionary<TKey, TValue>는 Dictionary는 자료구조에 데이터를 추가할 때 Key와 Value를 한 쌍으로 추가하고

Dictionary에서 검색할 때 Key를 이용하여 Value를 찾지만  HashSet은 Key로 Key 자체를 찾는다고 볼 수 있습니다

즉, 값(Value)가 없는 컬렉션으로 간주될 수 있습니다.

 

C#에서 제공하는 함수들은 다음과 같습니다.

HashSet 작업 수학적 연산
UnionWith Union 또는 Set 더하기 (합집합)
IntersectWith 교집합
ExceptWith 빼기 설정
SymmetricExceptWith 대칭 차

실제 수학의 집합에서 자주 사용되는 연산 개념인 합집합, 교집합, 차집합 등을 함수로 제공하고 있습니다.

 

참고자료

https://docs.microsoft.com/ko-kr/dotnet/api/system.collections.generic.hashset-1?view=net-6.0