[자료구조] Set / Map / Hash / Tree 특징

Donghyun Kim·2022년 8월 16일
0

Set

HashSet

HashSet은 목록의 배열

  • Key, Value가 아닌 고유한 한 요소만을 저장한다.
  • 중복을 허용하지 않는다.
  • 추가, 수정, 삭제에 성능이 좋은 자료구조.

TreeSet

이진 탐색 트리 구조

  • Key, Value가 아닌 고유한 한 요소만을 저장한다.
  • 중복을 허용하지 않는다.
  • 정렬과 조회에 성능이 좋은 자료구조.

Map

Map은 key와 value를 가진 집합이며, 중복을 허용하지 않는다.

즉, 한개의 key에 한개의 value가 매칭된다.

java.util 패키지에 여러 집합들을 사용하기 위한 여러 interface와 class 들이 정의되어 있다.

HashMap

HashMap은 Map interface를 implements한 클래스이며

key와 value를 가진 집합

  • 중복을 허용하지 않는다.
  • 순서가 보장되지 않는다.
  • null을 허용한다.

LinkedHashMap

HashMap은 Map interface를 implements한 클래스이며

key와 value를 가진 집합

  • 중복을 허용하지 않는다.
  • 순서가 보장된다. (입력 순서대로 정렬된다.)
  • null을 허용한다.

Hashtable

key, value 집합

  • 중복을 허용하지 않는다.
  • null을 허용하지 않는다.
  • 동기화를 지원한다.

TreeMap

이진트리 기반의 Key, Value를 가진 집합 트리 구조
HashMap과 다른 점은 SortedMap을 implements 하였으므로, key 값들에 대한 정렬이 이루어진다.

  • 중복을 허용하지 않는다.
  • Key, Value가 알파벳 순서대로 정렬된다.
  • key에는 null이 허용되지 않지만, value는 null이 허용된다.
  • 데이터 삽입, 추가, 삭제는 HashMap보다 오래걸리지만, 정렬된 데이터를
    조회하는 범위 검색시 효율이 좋다.

LinkedTreeMap

이진트리 기반의 Key, Value를 가진 집합 트리 구조
HashMap과 다른 점은 SortedMap을 implements 하였으므로, key 값들에 대한 정렬이 이루어진다.

  • 중복을 허용하지 않는다.
  • Key, Value가 알파벳 순서대로 정렬된다.
  • key에는 null이 허용되지 않지만, value는 null이 허용된다.
  • 데이터 삽입, 추가, 삭제는 HashMap보다 오래걸리지만, 정렬된 데이터를
    조회하는 범위 검색시 효율이 좋다.
  • 순서가 보장된다. (입력 순서대로 정렬된다.)

용도에 따른 각 자료구조의 주요 특징

  • 중복을 허용하지 않는 값만 저장해야 한다.
    -> Set

  • Key, Value를 저장해야 한다.
    -> Map

  • 정렬이 필요하다.
    -> Tree

  • 입력 순서를 보장해야한다.
    -> Linked

  • 추가, 수정, 삭제가 빈번하다.
    -> Hash

  • 정렬, 조회가 빈번하다.
    -> Tree

profile
"Hello World"

0개의 댓글