Skip to content

Latest commit

 

History

History

hashMap

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

HashMap 구현하기

  • 주어지는 값이 int 타입이므로, 해시 충돌에 대해 대비할 필요가 없음.
  • 내부 구조를 테이블로 설계하는 것으로 충분.
  • 테이블의 크기를 초기에 얼마로 설정하고 어떻게 늘려나갈지가 디자인 요소가 될 수 있음.
  • 가장 쉬운 방법은 주어지는 정수 범위를 이용해서(0 ~ 10^6) 범위 크기 만큼의 배열을 생성하는 것.

해시 코드를 정수값 그대로 사용했을때

트레이드오프

  • 현재는 퍼포먼스는 좋으나 공간 사용이 좋지 않은 상황이다.
  • 충돌관련 사항을 설계하고 해시코드를 통해 충돌 비율을 통제해서 적절한 값을 실험해 볼 수 있다.
  • loadFactor도 함께 설계 해 볼 수 있다.

해시 충돌 설계하기

  • hashCode 를 정수 범위보다 작게 설계해서, 적절하게 해시 충돌이 일어나는 상황이되면 어떨까?