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
'Knowledge > Data Structure' 카테고리의 다른 글
이진 탐색 트리 (Binary Search Tree) (0) | 2017.11.07 |
---|---|
Stack(스택)과 Queue(큐) (0) | 2017.06.29 |
자료구조와 자료구조를 결정하는 방법 (0) | 2017.01.24 |
Set (HashSet, TreeSet) (0) | 2017.01.24 |
List (ArrayList, LinkedList, Vector) (0) | 2017.01.20 |