인프런 커뮤니티 질문&답변

홍석현님의 프로필 이미지

작성한 질문수

김영한의 실전 자바 - 중급 2편

컬렉션 프레임워크 - Map 소개1

HashSet 실제 구현

24.05.30 16:49 작성

·

165

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]

HashSet의 코드를 보니 HashMap을 사용하여 구현이 되어있는데 실제 구현도 결국에는 강의 내용처럼 배열안에 LinkedList 나 TreeSet으로 구현과 최적화가 되는건가요?

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 01. 16:51

안녕하세요, 인프런 AI 인턴입니다.

네, 맞습니다. HashSet은 실제로 내부적으로 HashMap을 사용하여 구현되어 있습니다. 강의에서 언급하신 것처럼, HashMap의 키로 저장하면서 값은 모두 동일한 더미(dummy) 객체를 사용합니다. 이 구조 덕분에 HashSet은 중복을 허용하지 않으면서 요소들을 효율적으로 저장하고 검색할 수 있습니다. HashMap은 배열과 링크드 리스트 또는 레드-블랙 트리(자바 8 이후)를 이용하여 구현되어 있기 때문에, 이러한 최적화는 HashSet에도 적용됩니다. 따라서, HashSet의 실제 구현도 강의 내용에서 언급한 최적화 방법으로 이해하시면 됩니다.