HashMap에 대한 설명

spring

해쉬맵(Hash Map)

해쉬맵은 키-값 쌍으로 데이터를 저장하는 자료구조입니다. 해쉬맵은 키(key)와 값(value)으로 구성되며, 키를 통해 값을 검색하고 저장할 수 있습니다. 해쉬맵은 효율적인 데이터 검색을 위해 해시 함수(hash function)를 사용합니다.

동작 방식

  1. 해시 함수를 사용하여 키를 해시값(해시 코드)으로 변환합니다.
  2. 변환된 해시값을 인덱스로 사용하여 배열에 해당하는 위치에 데이터를 저장합니다. 이를 해시 충돌(hash collision)이 발생하지 않을 때까지 반복합니다.
  3. 검색할 때에도 동일한 해시 함수를 사용하여 키를 해시값으로 변환하고, 해당 해시값을 인덱스로 사용하여 배열에서 값을 검색합니다.

해쉬맵의 장점

  • 빠른 데이터 검색: 해시 함수를 사용하므로 평균적으로 상수 시간(O(1))에 데이터를 검색할 수 있습니다.
  • 높은 성능: 해시 충돌을 최소화하기 위해 충분한 크기의 배열을 사용하면 충돌을 줄일 수 있습니다.
  • 유연한 크기 조정: 일반적으로 배열의 크기를 동적으로 조정하여 저장할 수 있는 데이터의 양에 유연하게 대응할 수 있습니다.

해쉬맵의 단점

  • 해시 충돌: 서로 다른 키들이 동일한 해시값을 가지는 경우 충돌이 발생할 수 있습니다. 충돌을 해결하기 위한 알고리즘 및 자료구조가 필요합니다.
  • 메모리 사용량: 큰 크기의 배열을 사용해야 하므로 메모리 사용량이 상대적으로 크게 증가할 수 있습니다.
  • 순서 보장의 어려움: 해쉬맵은 키-값 쌍을 저장하는 구조이기 때문에 저장 순서를 보장하지 않습니다.
효준's profile image

효준

2023-07-10 10:50

다른글 보러가기

Docker의 장단점

이전 포스트

git을 사용하는 이유

다음 포스트