[자료구조] Map, Hashmap, Set 구분

다미·2022년 9월 12일
0

알고리즘 이론

목록 보기
4/4

Map VS Hashmap VS Set


Map

  • Key와 Value의 한 쌍으로 이루어지는 데이터의 집합.
  • Key에 대한 중복이 없으며, 순서를 보장하지 않음.
  • 뛰어난 검색 속도를 가짐.
  • 인덱스가 따로 존재하지 않아 iterator를 사용.

Map의 종류와 특징

  • HashMap
    • Key에 대한 중복이 없으며, 순서를 보장하지 않음.
    • Key와 Value 값에 NULL을 허용.
    • 동기화가 보장되지 않음.
    • 검색에 가장 뛰어남
  • HashTable
    • 동기화가 보장되며, 병렬 프로그래밍이 가능함
    • HashMap보다 처리속도가 느림.
    • Key와 Value 값에 NULL을 허용하지 않음.
  • LinkedHashMap
    • 입력된 순서를 보장.
  • TreeMap
    • 이진 탐색 트리(Binary Search Tree)를 기반으로 Key와 Value를 저장.
    • Key 값을 기준으로 오름차순 정렬.
    • 빠른 검색이 가능.
    • 저장 시 정렬을 진행하기 때문에 시간이 다소 걸림.

HashMap

  • Map의 종류 중 하나로, Map의 특징인 Key와 Value의 한 쌍으로 이루어지는 데이터 집합.
  • Key에 대한 중복이 없으며, 순서를 보장하지 않음.
  • Key와 Value 값에 NULL을 허용.
  • 동기화가 보장되지 않음.
  • 검색에 가장 뛰어남

Map과 HashMap의 차이

특정 Key에 대한 Value을 찾는 과정에서, HashMap은 HashTable을 이용해서 Key-Value 관계를 유지하고, Map은 Red-Black Tree(이진 탐색 트리)를 이용.


Set

  • 데이터의 집합으로, 순서가 없고, 중복된 데이터를 허용하지 않음.
  • 중복되지 않은 데이터를 구할 때 유용.
  • 빠른 검색 속도를 가짐.
  • 인덱스가 따로 존재하지 않아 iterator를 사용.

Set의 종류와 특징

  • HashSet
    • instance의 hash값을 기준으로 저장.
    • 순서를 보장하지 않음.
    • NULL 값을 허용.
    • TreeSet보다 삽입, 삭제가 빠름.
  • LinkedHashSet
    • 입력된 순서를 보장.
  • TreeSet
    • 이진 탐색 트리(Red-Black Tree)를 기반으로 함.
    • 데이터들이 오름차순으로 정렬.
    • 데이터 삽입, 삭제에는 시간이 걸리지만, 정렬은 빠름.

요약

  • Map은 순서가 보장되지 않고, Key 값의 중복은 허용하지 않지만, Value 값의 중복은 허용.
  • HashMap은 Map의 종류 중 하나로, Map의 특징 + NULL값 허용, 검색에 뛰어남
  • Set은 순서가 보장되지 않고, 데이터의 중복을 허용하지 않음.

0개의 댓글