JAVA 집합 류 실현 원리 약술 - PART 1 지도
1678 단어 자바 언어
Hashmap 의 바 텀 데이터 구 조 는 산 목록 이 고 바 텀 실현 구 조 는 배열 과 링크 입 니 다. key - val 이 삽입 할 때 key 에 따라 hashcode 를 계산 한 다음 에 배열 의 특정한 위치 에 투사 합 니 다.만약 배열 의 위치 가 점용 되 고 충돌 이 발생 했다 면.링크 주 소 를 통 해 이 충돌 을 해결 합 니 다.
삽입 프로 세 스
put(key,val), key HASH hashcode, hashcode , key-val 。
, , , (bucket) key-val 。
수치 추출 과정
get(key), key HASH hashcode, hashcode ,
entry ( ), 。
entry , , , entry
key key, entry 。
Hash Table 과 의 차이
Hashtable 의 모든 방법 에 synchronized 를 추가 하면 스 레 드 가 안전 합 니 다. HashMap 은 스 레 드 가 아 닌 Hashtable 은 Null 의 key 를 설정 할 수 없습니다. HashMap 은 Null 로 설정 할 수 있 는 key 단일 스 레 드 일 때 Hashtable 속도 가 느 립 니 다.
HashMap 을 통 해 라인 안전 목적 달성
우 리 는 HashMap 을 맵 m = Collections. synchronizeMap (hashMap) 과 동기 화 할 수 있 습 니 다.이렇게 하면 서로 배척 하 는 대상 자 물 쇠 를 통 해 스 레 드 동기 화의 목적 을 달성 하 는 것 이다. 그러나 이러한 실현 은 병행 장면 에서 효율 이 너무 낮 았 다. 나중에 concurrent 가방 에 있 는 Concurrent HashMap 은 데이터 구조 에서 높 은 병행 에 대한 지 지 를 진정 으로 실현 했다.
2 TreeMap
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정규 표현 식 과 이상 처리프로그램 이 실행 되 기 시 작 했 고 이상 이 발생 한 후에 우 리 는 이상 한 유형, 이상 이 발생 한 줄 번 호 를 주목 해 야 합 니 다.오 류 는 프로그램 이 실행 되 는 과정 에서 발생 하 는 일련의 이상...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.