HashMap은 해시 함수를 사용하여 Key-Value 쌍을 저장하고 조회하는 자료구조입니다.

동작 원리를 구체적으로 말씀드리면, 먼저 Key 객체의 hashCode() 메서드를 호출하여 해시 값을 얻습니다. 이 값을 배열의 크기에 맞춰 인덱스로 변환한 뒤, 해당 위치(버킷)에 데이터를 저장합니다.

만약 서로 다른 Key가 같은 인덱스에 배정되는 해시 충돌이 발생하면, Java는 Separate Chaining 방식을 사용합니다. Java 7까지는 연결 리스트(Linked List)로 데이터를 이어서 저장했지만, Java 8부터는 한 버킷에 데이터가 8개 이상 쌓이면 Red-Black Tree로 구조를 변경하여 조회 성능을 에서 으로 최적화합니다.

결과적으로 HashMap은 평균적으로 의 시간 복잡도로 데이터를 매우 빠르게 처리할 수 있는 효율적인 자료구조입니다.”