HashMap의는 N의 힘으로 2 왜

사진의 HashMap의 구성을 이해

주로 Node 형의 배열, 연결리스트, 레드 - 블랙 트리 조성물 해시 맵. 요소 목록 여덟 개 레드 - 블랙 트리가 저장된 사용할 경우 도면에서 알 수있는 바와 같이, 노드 어레이에 저장 개체는 각 노드 오브젝트는,리스트와 연관된다.

약 2 전원

배열 길이 -1 노드 소자 어레이에서의 위치를 ​​결정하기위한 모듈로 해쉬 값을 이용하여.

tab[i = (n - 1) & hash]
复制代码

소스 코드의 목적은 이렇게하는

모듈 2 -1 방식의 전원을 사용하는 단어에 배열 된 공간을 사용하여, 상기 어레이의 요소들의 균일 한 분포를 허용한다.

기본 아이디어

n은 어레이의 길이 값은 2의 n 승이다.

N = 8, 해시 = 0,100,010,001,100 가정

다음과 같이 (N-1) 해시 계산된다 :

 0100010001100    //hashcode的值
&         0111    //(8-1)=7的二进制代码
          0100    //相&之后的值 

复制代码

당신은 해시 값을 찾을 수 있습니다 0100010001100, 위상 및 이후 값 0100그렇게 좋은 동일한 다시 세 값은, 해시 낮은 값을 얻는 것입니다.

개요

해시 배열의 요소의 위치를 ​​결정하는 단계에서 얻어진 낮은 값은, 해시 어레이의 활용을 향상시키는 것이다.

추천

출처juejin.im/post/5d2e885f51882556d1683740