2016-08-14 2 views
1

해시 맵의로드 요소 기본값은 0.75f입니다. 즉, 해 맵의 75 % 용량이 채워지면 해시 맵을 다시 해시합니다. 예 : 2 (수퍼 (용량 + 1, 2.0f, true))해시 맵의로드 요소 값이 1보다 큰 경우

여기에서 작동하는 방법 및 해시 작동 방식

내가 예를 들어 1보다 큰 말할 수 부하 계수의 값을 설정하면 어떻게

답변

2

2 (슈퍼 (용량 + 1, 2.0f)는 true)

이미 답을 가지고;

... hashmap의 용량이 200 %이면 해시 맵을 다시 해시합니다.

해싱은 동일하게 작동하며 성능에 영향을 미치는 더 작은 용량을 사용합니다. 초기 용량을 충분히 크게 만들면로드 요소가 절대로 작동하지 않습니다. 부하 계수는지도 크기를 조정할 때만 적용됩니다.

주 : 실제 용량은 항상 당신이 그것을 시도 내가 제안 2.

의 힘이다.

BTW 부하 계수를 변경하면 버킷 수가 적기 때문에 요소가 나타나는 순서가 바뀔 수 있습니다. 설정 또는지도를 인쇄하고 비교하는 중입니다.

+0

감사합니다. @peter lawrey – Samar

0

Java의 HashMap은 닫힌 주소 지정을 사용하므로 해시 테이블의 여러 요소가 모두 같은 위치에 해시되는 경우 Java는 모든 데이터를 동일한 버킷의 보조 데이터 구조에 넣습니다. 이를 통해 부하율을 임의로 높일 수 있습니다. 이는로드 요소가 둘 이상일 수없는 선형 탐색 해시 테이블과 다릅니다.

+0

연쇄 주소 지정과 같습니다. –

+0

@mithatkonut 예, 정확하게. – templatetypedef