[Java] Set
2021. 4. 11. 21:54
1. Set ?
- 요소의 저장 순서를 유지하지 않음
- 중복 저장 불가
- HashSet, LinkedHashSet, TreeSet
1.1 HashSet
- Set 컬렉션 클래스에서 가장 많이 사용되는 클래스 중 하나
- 해시 알고리즘(hash algorithm)을 사용하여 검색 속도가 매우 빠름
1.2 LinkedHashSet
- 다른 Set들과 동일하게 중복은 허용하지 않으나 추가한 순서대로 값이 저장됨
1.3 TreeSet
- 정렬된 상태로 저장되는 레드-블랙 트리(Red-Black tree)의 형태로 요소 저장 ( 오름차순 )
- 대량의 데이터를 검색할 때 빠름
2. 사용법
Set 생성자
import java.util.HashSet;
import java.util.TreeSet;
import java.util.LinkedHashSet;
HashSet<Integer> set1 = new HashSet<Integer>();
LinkedHashSet<Integer> set2 = new LinkedHashSet<Integer>();
TreeSet<Integer> set3 = new TreeSet<Integer>();
Set 멤버함수
set.add(1);
set.add(3);
set.add(3); // set에 중복값 저장 불가
set.remove(1);
set.clear();
set.size();
set.contains(1); // set이 1을 포함하는지 확인
set1.equals(set2) // set2와 set1이 같은지 확인
set.isEmpty(); // set이 비어있는지 확인
set.toArray() // set을 array로 변환
Iterator
import java.util.Iterator;
Iterator<String> iter = set.iterator(); // set을 Iterator 안에 담기
while(iter.hasNext()) { // iterator에 다음 값이 있다면
System.out.println("iterator : " + iter.next()); // iter에서 값 꺼내기
}
Set의 정렬
HashSet<Integer> set = new HashSet<>();
ArrayList<Integer> list = new ArrayList<>(set); // set to list
Collections.sort(list); // list 정렬
'Java' 카테고리의 다른 글
[Java] 문자열(String) 비교 (0) | 2021.04.14 |
---|---|
[Java] Iterator (0) | 2021.04.12 |
[Java] list (0) | 2021.04.12 |
[Java] 정렬 - sort, comparable, comparator (0) | 2021.04.12 |
[Java] Stack (0) | 2021.04.09 |