1. HashMap의 기본 구조 이해하기
- ConcurrentHashMap을 이해하기 위해서는 먼저 HashMap의 기본 구조를 이해해야 합니다.
- HashMap은 키-값 쌍을 저장하는 자료구조로, 해시 함수를 사용해 키를 버킷에 매핑합니다.
1.1 HashMap의 내부 구조
- HashMap은 내부적으로 다음과 같은 구조를 가집니다
- 배열 (버킷 배열)
- 데이터를 저장하는 여러 개의 버킷(bucket)으로 구성된 배열
- 각 버킷은 실제 데이터를 저장하는 공간
- 해시 함수
- 키(key)를 특정 버킷에 매핑하는 함수
- 같은 키는 항상 같은 버킷으로 매핑됨
정보
버킷(Bucket)은 데이터를 저장하는 '상자'라고 생각하면 됩니다. 해시 함수는 각 키가 어떤 상자에 들어가야 하는지 결정합니다.
1.2 데이터 저장 과정
HashMap<String, String> map = new HashMap<>();
map.put("apple", "red");
// 내부적으로 일어나는 과정:
// 1. "apple" 문자열의 해시값 계산
// 2. 해시값을 버킷 배열의 크기로 나눈 나머지로 버킷 인덱스 결정
// 3. 해당 버킷에 키-값 쌍 저장