반응형
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<>();
반응형
'Programming > Data Structure' 카테고리의 다른 글
List Interface (리스트 인터페이스) (0) | 2022.03.25 |
---|---|
적절한 자료구조를 사용하는 방법 (0) | 2022.03.25 |
Queue interface List란? (Deque, LinkedList, ArrayDeque, PriorityQueue) (0) | 2022.03.24 |
List 리스트 자료구조란? (ArrayList, LinkedList, Vector, Stack) (0) | 2022.03.24 |
자바 컬렉션 프레임워크 (0) | 2022.03.23 |