happy-developers / dev-interview

1 stars 1 forks source link

[Java] HashMap이 키와 값을 빠르게 찾을 수 있는 이유는 무엇일까요? #46

Open rogarithm opened 1 year ago

rogarithm commented 1 year ago

[Java] HashMap이 키와 값을 빠르게 찾을 수 있는 이유는 무엇일까요?

키워드

bucket, 모듈로 계산, linked list, tree


HashMap에서 키를 가지고 값을 찾는 과정이 빠른 이유는, HashMap 안 모든 요소를 체크해가면서 키와 그 키에 맞는 값을 찾는 것이 아니라 키를 기준으로 값이 있는 위치를 찾기 때문입니다.

자세하게 살펴보기 위해 키를 기준으로 HashMap의 값을 찾는 메서드인 get이 어떻게 동작하는지 살펴보면:

  1. 키를 입력합니다.
  2. 키에 hash 메서드를 적용해(hash(키)) 해시값을 얻습니다.
  3. 이 해시값을 기준으로 모듈로 계산을 해서 원하는 키-값 entry가 있는 bucket 위치를 찾습니다.