HashSet에서 어떻게 중복제거를 하는지, 세부 동작과 원리에 대해서 알아보고자 한다.
직접 HashSet 내부 코드를 살펴보기 전엔 몰랐던 사실인데, HashSet 내부에서 HashMap을 사용하고 있다.
HashMap의 특성 중 Key는 중복없는 특성을 이용해서, key로 add하려는 Element를 넘겨주고, value는 Dummy 값을 넘겨주고 있다.
put은 위와 같이 구현되어 있는데, 핵심은 hash 메서드이다.
key의 hashCode를 얻어와 해시충돌을 방지하기 위한 XOR 연산을 해주고 그 값을 리턴한다.