[Set과 Map] 자료구조 Set과 Map이란?

2021. 11. 16. 14:56[Data Structrue] 자료구조

반응형

Set의 구조는 이렇다.

Set이라는 인터페이스를 구현해 HashSet, TreeSet등을  사용한다.

Set : 데이터의 집합이며 순서가 없고 중복된 데이터를 허용하지 않는 배열

HashSet은?

1. 순서가 없는 배열이다.

2. 중복 값을 가질 수 없다.

3. 첨자가 없다.

4. 해시 함수를 사용하기 때문에 Set중에 속도가 가장 빠르다.

5. 인덱스가 따로 존재하지 않아 Iterator를 사용한다.

해시 테이블을 사용해서 해시값을 기반으로 데이터를 저장하기 때문에 특정값을 포함하는지 확인하는 작업이 매우 빠르다.

TreeSet은?

TreeSet은 이진 탐색 트리를 기반으로 한다.

1. 데이터들이 오름차순으로 정렬된다.

2. 데이터 삽입, 삭제에는 시간이 걸리지만 검색, 정렬이 빠르다.

LinkedHashSet은?

1. 입력된 순서를 보장한다.

Map은?

Key와 Value의 한 쌍으로 이루어지는 데이터의 집합

Key에 대한 중복은 없고 Value는 중복이 될 수 있다.

순서를 보장하지 않는다.

뛰어난 검색속도를 가진다.

인덱스가 따로 존재하지 않아 Iterator를 사용한다.

HashMap의 종류와 특징

-HashMap

    - Key에 대한 중복이 없으며 순서를 보장하지 않는다.

    - Key와 Value 값으로 Null을 허용한다.

    - 동기화가 보장되지 않는다.

    - 검색에 가장 뛰어난 성능을 가진다.

-HashTable

    - 동기화가 보장되어 병렬 프로그래밍이 가능하고 HashMap보다 처리속도가 느리다.

    - Key와 Value값으로 Null을 허용하지 않는다.

- LinkedHashMap

    - 입력된 순서를 보장한다.

- TreeMap

    - 이진 탐색 트리를 기반으로 키와 값을 저장한다.

    - Key값을 기준으로 오름차순 정렬되고 빠른 검색이 가능하다.

    - 저장 시 정렬을 하기 때문에 시간이 다소 오래 걸린다.

 

요약

Set은 중복 데이터를 허락하지 않고 순서를 신경쓰지 않는 순열 자료구조이다

Map은 Key와 Value의 한 쌍의 데이터로 구성되어 있고 순서가 보장되지 않고 Key값은 중복을 허락하지 않고 Value값은 중복이 가능하다.

반응형

'[Data Structrue] 자료구조' 카테고리의 다른 글

[Hash] 해시란?  (0) 2021.11.16
[Tree] 트리란?  (0) 2021.11.16
[Heap] 힙이란?  (0) 2021.11.15
[Queue와 Stack의 차이] 큐와 스택의 개념과 차이점  (0) 2021.11.15
[ArrayList vs Linked List] 의 차이점  (0) 2021.11.15