본문 바로가기

Programming/Data Structure

Set 자료구조란 무엇인가?

반응형

Set 자료구조란 무엇인가?

- Set은 집합이다.

- 데이터를 중복해서 저장할 수 없다.

- 입력 순서대로의 저장 순서를 보장하지 않는다. (예외. LinkedHashSet)

 

- 기본적으로 List계열은 index(Node)로 관리하기 때문에 순서대로 저장되는 구조다.

 

 

Set / Sorted Interface를 구현하는 클래스

1. HashSet

2. LinkedHashSet

3. TreeSet

 

 

Set/ Interface에 선언된 대표적인 메소드

 

 

HashSet

- 가장 기본적인 Set collection 클래스이다.

- 입력순서 보장되지 않고, 순서도 보장되지 않는다.

- hash에 의해 데이터의 위치를 특정시켜서 색인(Search)할 수 있게 만든 것이다.

- hash와 set의 기능을 합친 것.

- 삽입, 삭제, 색인이 매우 빠르다.

 

LinkedHashSet

- Set은 중복허용은 하지 않지만, 순서는 보장받지 않아 불편할 수 있다.

- 그럴 때 사용하는 것이 LinkedHashset이다.

- 중복허용은 하지 않지만, 순서를 보장해준다.

 

 

TreeSet

- 입력한대로 정렬되는 것이 아니라 가중치에 따른 순서대로 정렬된다. (PriorityQueue)와 비슷하다고 볼 수 있다.

- 즉, 중복되지 않으면서, 특정 규칙에 의해 정렬된 형태의 집합을 쓰고 싶을 때 쓴다.

- 정렬된 형태로 있어서 특정 구간의 집합요소를 탐색할 때 유용하다.

 

 

클래스 생성방법

HashSet<T> hashset = new HashSet<>();
LinkedHashSet<T> linkedhashset = new LinkedHashSet<>();
TreeSet<T> treeset = new TreeSet<>();
 
SortedSet<T> treeset = new TreeSet<>();
 
Set<T> hashset = new HashSet<>();
Set<T> linkedhashset = new LinkedHashSet<>();
Set<T> treeset = new TreeSet<>();
반응형