첫 번째 기사 | HashMap의는 마무리를 배웠다

참고 기사 :

https://blog.csdn.net/yyyljw/article/details/80903391

https://www.jianshu.com/p/a89e9487a06c

https://blog.csdn.net/woshimaxiao1/article/details/83661464

https://blog.csdn.net/eaphyy/article/details/84386313

얕은을 배운, 토론을 시작하십시오.

이 포함됩니다 :

1. 해시 테이블

2. HashMap의 해시 알고리즘

정적  최종  INT의 해시 (개체 키) {
         INT 시간;
        반환 (키 == null이 )? 0 (H = key.hashCode ()) ^ (H >>> 16 );
    }

 

3. HashMap의 룩업 배열 첨자 이유

(N - 1) 해시

해시 테이블

해시 테이블 (또한 해시 테이블 호출)는 키 값 (키 값) 및 데이터 구조에 직접 접속에 기초한다. 즉, 키 값을 기준으로 레코드를 테이블에 검색을 빠르게 할 수있는 위치에 매핑되는 액세스 할 수 있습니다. 스토리지 어레이를 기록 해시 함수 호출이 매핑 함수는 해시 테이블이라고 부른다.

  다른 데이터 구조에서 우리가 연구 해시 테이블 앞에 오게,보기

  어레이는 : 메모리의 물리적 데이터의 동일한 유형의 연속하는 저장 공간이다. 특징 : 느린 업데이트 및 삭제 작업을 빨리 찾기를 삽입합니다.

  선형리스트 : 체인화 메모리 구조, 메모리 데이터 구조가 연속되지 않을 수, 각 데이터 노드에 저장된 데이터 요소 사이의 순차 논리 관계가 일치하지 않을 수 있고, 데이터 요소들 사이의 논리적 관계 포인터 필드 결정. 특징 : 빠르고 느린, 삽입, 업데이트 및 삭제 작업을 찾습니다.

  그래서, 당신은 배열과 연결리스트와 함께 데이터 구조를 설계 할 수 있다면? 이 해시 테이블입니다.

  해시 테이블 기능 :

  1 해시 테이블은 저장 키 값 형태이다.

  어드레스 인덱스 = F (키) 함수 f는 일반적으로 해시 함수라고 직접 설계에 영향을 미칠 것이다 2. 트렁크 해시 테이블 인덱스 어레이, 즉 함수에 의해 결정되는 배열이며 해시 테이블의 장점.

  3. 어레이의 요소들이 연결 목록은

  예를 들면 :

이름이 들어 Person 클래스를 기존 1000 Person 객체에서 시대의 두 가지 속성을 가진 당신은 어떻게 할 개체의 "조 스미스"이름을 찾을 수 있습니다 (유일한 이름 가정)?
에없는 이름 개체의 "조 스미스"를 찾아 ArrayList에에 1000 Person 객체, 다음의 ArrayList를 통과 : 일부 학생들은 말을하고 싶다.
예,이 방법은 가능하지만, 조 스미스는 마지막이 그 효율성이 매우 낮은 수 있도록 1000을 통과하는 것을 의미 직전 경우, 우리는이 문제를 해결하는 방법이 없다?

이 예제 해시 테이블 솔루션은 다음을 참조하십시오 TODO를

추천

출처www.cnblogs.com/bloodthirsty/p/12015813.html