Map, HashMap (Hash table?)

Kim DongKyun·2023년 3월 23일
1

맵과 해시맵이 무엇이 다를까? 일반적으로 맵을 쓰게 된다면 다음과 같은 상황을 마주하게 된다.

맵타입의 새 인스턴스를 선언 할 때, 구현체로 추천받는 최상단 녀석이 HashMap이다.

해쉬맵이랑 맵이 뭐가 다르길래?


1. Map

맵은 자바의 Collection 인터페이스를 상속받지 않고, Map 인터페이스로 정의된다.

2. HashMap

해쉬맵 클래스는 위와 같이 Map 추상클래스와 인터페이스를 상속받는다.


HashTable

해시 테이블은 컬렉션 프레임워크가 등장하기 전부터 존재했던 개념이다. 해쉬맵과 마찬가지로
Key:Value 형식으로 이루어지는데, Hashtable이 해쉬맵과 다른 점은 동기화를 지원한다는 것이다. 즉, Thread-safe 하다.


HashMap vs HashTable

Hash?

임이의 길이의 값을 입력 받아 고정된 크기의 값으로 변환하는 것.

어? 그러면 Serialize랑 되게 비슷한거 아냐?

아니다.

여기서 주목해야 할 점은 역할!

  • Hash : 원본 데이터의 식별자로 활용됨
  • Serialize : 객체를 이진 형태로 변환해서 저장, 전송하기 위해 활용됨.

즉 Hash는 원본 데이터의 식별자! 이며, Serialize는 원본 객체를 파일 형태로 변환하기 위해서 사용한다.

0개의 댓글