Studio u by kingjakeu This is hello from jakeu

자료구조 Set과 Map 비교, Graph와 Tree 차이

Set

  • Set이란 데이터의 집합
  • List와 달리 중복을 허용하지 않음

Set의 종류 in Java

  • HashSet
    • 순서를 보장 하지 않는 set
  • TreeSet
    • Binary Search Tree 구조
    • 추가와 삭제에는 시간이 좀 더 걸리지만, 정렬 및 탐색에 성능이 좋음
    • 오름차순을 데이터를 저장
  • LinkedHashSet
    • 데이터가 들어간 순서대로 저장하는 Set

Map

  • Map이란 Key와 Value로 이뤄진 데이터의 집합
  • Key의 중복은 허용되지 않고, Value의 중복은 가능하다.

Map의 종류 in Java

  • HashMap
    • 순서를 보장하지 않는 map, Key와 Value로 null이 허용된다.
  • HashTable
    • 동기화를 지원하는 map, Key와 Value로 null이 허용되지 않는다.
  • TreeMap
    • 이진 검색 Tree 구조의 Map, 저장시 Key기준으로 오름차순 저장된다.
  • LinkedHashMap
    • 들어간 순서대로 저장되는 Map

List와 Set의 차이

  • List는 기본적으로 순서대로 데이터가 들어가며 중복을 허용한다.
  • Set은 순서가 보장되지 않고 중복을 허용하지 않는다.
  • Map은 순서가 보장되지 않고, Key 중복은 허용하지 않지만 Value의 중복은 허용된다.

Graph(그래프)

  • Graph(그래프)란 node와 node를 연결하는 edge를 하나로 모은 자료구조
  • 무방향, 양방향, 단방향 다 가능하다
  • 루트 노드 개념이 없다
  • 순환, 비순환, Self loop도 가능
  • 사이클이 없는 GraphTree와 같다

Graph와 Tree의 차이

  • Tree는 사이클이 없다, 하지만 Graph는 사이클이 있다
  • Tree는 한개의 루트노드가 있다. 그래서 Tree는 계층 모델이 된다
  • Graph는 루트노드가 없기에 네트워크 모델이다
  • Tree의 간선 개수는 항상 정점개수 - 1, Graph는 정해져 있지 않다.