Map Interface
: Map은 중복을 허용하지 않는 Key와 중복이 가능한 Value가 각각 쌍을 이루어 저장되는 자료구조이다.
Map 자료구조의 특징
- 중복 : 중복 불가 , index가 순차적 Key로 유일성을 가짐
- 순서 : 보장 불가
- 정렬 : 정렬 불가
- 동기화 (Thread-Safe) : 동기화 불가능, 불안전함
삽입 / 삭제 / 조회 연산이 광장히 빠르지만,
순서를 보장하지 않고, 정렬이 불가하다는 단점을 가지고 있다.
이러한 단점을 보완하기 위해서 자바에서는 HashMap , LinkedHashMap, TreeMap 세 가지의 클래스를 지원한다.
HashMap
- 해시함수를 이용한 Map임
- 삽입 / 삭제 / 조회 연산의 O(1)을 보장하는 아주 빠른 자료구조
- 삽입 데이터의 순서를 보장하지 않음
- 정렬이 불가함
![](https://velog.velcdn.com/images/glory_95/post/fc31c5ef-5034-4440-8552-2adcfcf0802a/image.png)
LinkedHashMap
- 삽입 / 삭제가 맵보다 느림
- 삽입 순서를 보장함
- 정렬은 불가함
- 주요 메서드는 HashMap과 같다
TreeMap
- 삽입 / 삭제가 굉장히 느림,
- 삽입순서를 보장함
- Map이지만 유일하게 정렬이 가능함.
![](https://velog.velcdn.com/images/glory_95/post/d8a33571-f287-47ba-b3c3-9f040c17ec07/image.png)
![](https://velog.velcdn.com/images/glory_95/post/e44e6e7b-b12e-4c0e-9f90-0a4a48a6faa4/image.png)
![](https://velog.velcdn.com/images/glory_95/post/d8d17818-8a45-4ba6-83ef-b39de4913fe8/image.png)