Map은 key와 value 쌍으로 이루어져 key를 통해 원하는 데이터(value)를 찾는 자료 구조이다.
자바에서는 Map<K,V> 인터페이스를 제공하고, 이 인터페이스를 상속받는 3가지 클래스가 존재한다.
바로 HashMap, TreeMap, LinkedHashMap이다.
HashMap
보통 자바에서 Map을 사용하면 HashMap을 가장 흔하게 사용한다.
HashMap은 해싱 테이블을 통해 데이터를 저장하는 방식이다. 따라서 HashMap은 검색 속도가 O(1)으로 매우 빠르다는 장점이 있다.
따라서, Map에 포함된 key들의 순서가 중요하지 않다면 HashMap을 사용하는 것이 유리하다.
TreeMap
이진 검색 트리(Binary Search Tree)를 통해 데이터를 저장하는 방식이다.
어떠한 데이터에 접근하려면 O(logN)의 시간복잡도가 걸린다. HashMap보다는 느리다.
하지만 key를 정렬된 순서대로 접근이 가능하다는 특징이 있다. 또한, Comparator를 통해 정렬 조건을 변경할 수도 있다.
LinkedHashMap
LinkedHashMap은 key들을 입력한 순서대로 접근할 수 있다.
만약, map.put("apple","사과"), map.put("banana","바나나"), map.put("orange","오렌지") 순서대로 map에
값을 넣었다면, map에서 key값들을 가져올 때도 마찬가지로 "apple" -> "banana" -> "orange" 순서대로
key에 접근이 가능하다.
'JAVA' 카테고리의 다른 글
[java] 스레드(thread) (0) | 2021.04.15 |
---|---|
[java] 예외 처리 (0) | 2021.04.03 |
[java] String, StringBuffer, StringBuilder (0) | 2021.04.02 |
[java] ArrayList, LinkedList, Vector (0) | 2021.04.01 |