Knowledge/Data Structure

Map (HashMap, Hashtable, TreeMap)

henry-jo 2017. 1. 19. 17:47

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