HashMap 과 HashTable

Haribo·2022년 7월 10일
0

1일 1cs

목록 보기
4/9

해시맵은? 🎆

해시맵이란 것은 이름 그대로 해싱(Hashing)된 맵(Map)이란 것이다. 여기서 해싱, 을 먼저 알아보자.

먼저 해싱이란 것은 쉽게 말하면 원본 문자열을 알아볼 수 없는 난해한 문자열로 정의하는 과정이라 이해하면 된다. 이런 특성을 이용해서 보안 알고리즘에 사용되거나 빠르게 검색 하기 위해 자료구조에서 사용되기도 한다.

은 뭘까?
맵이라는 것은 키(key)와 값(value)의 쌍으로 데이터를 보관하는 자료구조이다. 여기서 키는 맵에 오직 유일하게 있어야 한다. 그러니까 같은 맵에 두 개 이상의 키가 존재하면 안된다는 이야기.
값은 중복된 값이어도 상관은 없다. 아래 그림은 예시이다.

해시테이블은?? 🎇

해시테이블은 해시맵과 함께 Map을 구현한 키와 값 쌍을 데이터로 저장한 컬렉션이다!
여기서 키는 유일해야 한다. 그리고 해시테이블은 이 키를 가지고 키에 해당하는 값을 찾는다.

그래서 둘의 차이점은?

결론은 동기화 문제이다.
해시테이블은 동기화가 걸려있어 안정성이 높고 해시맵은 동기화가 없어 안정식이 그닥 좋진 않다. 그래서 안전성을 추구한다면 해시테이블을 사용하고 빠른 처리를 원한다면 해시맵을 사용하면 된다.

  • Thread-Safe인지 아닌지가 그 차이점이다.
  • 해시테이블은 동기화가 걸려있어 Thread-Safe. 해시맵은 동기화가 없어 unsafe
  • 안전성 추구 -> 해시테이블, 빠른 속도 -> 해시맵
    Thread 게시글이 나오면 이곳을 링크로 수정할 것이다.

0개의 댓글