본문 바로가기

Knowledge/Data Structure

Map (HashMap, Hashtable, TreeMap)

Map


이진 탐색 트리를 기반으로 두개의 자료형을 동시에 저장하도록 만든 자료구조이다.

List와 Set이 순서나 집합적인 개념의 인터페이스라면 Map은 검색의 개념이 가미된 인터페이스이다.

Map 인터페이스는 데이터를 삽입할 때 Key와 Value의 형태로 삽입되며, Key를 이용해서 Value를 얻을 수 있다. 


HashMap

HashMap은 Map 인터페이스를 구현한 클래스로서 중복을 허용하지 않는다. Map의 특징인 Key와 Value의

쌍으로 이루어져있다.

Map<String, Integer> hashmap = new HashMap<String, Integer>();


Hashtable

HashMap과 동기화를 보장하냐 안하냐의 차이외에는 거의 동일한 자료구조라고 볼 수 있다.

Hashtable<String, Object> hashtable = new Hashtable<String, Object>();


※TreeMap

HashMap과 비슷하지만 키 값을 기준으로 자동 정렬한다.

TreeMap<String, Object> treemap = new TreeMap<String, Object>();




Hashtable, HashMap의 공통점 

  • 내부적으로 모두 Hash 기법을 이용한다.
  • Map 인터페이스를 구현하고 있다.
  • Key와 Value를 이용해서 Data를 관리한다.


Hashtable, HashMap의 차이점 

  • Hashtable은 동기화가 보장된다.
  • HashMap은 동기화가 보장되지 않는다.
  • HashMap의 동기화 지원 방법 : Map m = Collections.synchronizedMap(New HashMap(…));


Hashtable, HashMap과 HashSet과의 관계 

  • Hashtable과 HashMap은 둘 다 Map 인터페이스를 구현하고 있다.
  • HashSet은 내부적으로 Hash기법을 사용하지만 Set인터페이스를 구현하고 있다.





참조 : http://withwani.tistory.com/150