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

임다정님의 프로필 이미지
임다정

작성한 질문수

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

직접 구현한 MyHashSet

해결된 질문

작성

·

97

0

에서 데이터를 hascode로 변환하고 그 hashcode로 hashindex에 넣는거를 구현했잖아요

자바 컬랙션에서 지원하는 hastSet,LinkedHashSet,TreeSet은 자바에서 hashCode는 지원하는건 알겠는데 저희가 배열에 값을 넣을때 따로 hashcode % 배열의크기 이 코드를 안넣어도되는건가요? 자바에서 hashCode도 생성해주고 hashIndex까지 생성해줘서 배열에 넣어주나요?

답변 1

1

안녕하세요. 임다정님, 공식 서포터즈 y2gcoder입니다.

네 맞습니다.

말씀하신 것처럼 HashSet, LinkedHashSet, TreeSet은 자바에서 만든 클래스이고 내부에서 해싱하는 것까지 구현해놨습니다!

예를 들어 저희가 만든 MyHashSet도 저희가 만들었기 때문에 내부에 hashIndex()까지 구현한 것을 알게 되었지, 이걸 사용만 한다고 하면 내부에 hashIndex를 만드는 방법이 어떻게 되는지를 굳이 알 필요는 없었을 것입니다 🙂

HashSet만 예를 들어보면

image

내부적으로 hashMap을 사용하고 있기 때문에 hashMap의 put()를 사용하는 것을 보실 수 있습니다!

image

HashMap의 put 을 보시면 hash(key)가 보이는데 이 부분이 바로 key 값을 해싱하는 것입니다!

 

 

 

감사합니다.

임다정님의 프로필 이미지
임다정

작성한 질문수

질문하기