[TIL][Java][2023-12-06] 컬렉션 - Set
2023. 12. 6. 19:19ㆍTIL/Java
Set
set은 순서가 없는 데이터의 집합이다. 데이터 중복을 허용하지 않는다. - 순서가 없고 중복도 없는 배열
- 특징
- 순서가 보장되지 않는 대신 중복을 허용하지 않는다.
- Set은 HashSet, TreeSet 등으로 응용하여 사용할 수 있다.
- Set은 생성자가 없는 껍데기라서 바로 생성할 수는 없다.(인터페이스)
- 생성자가 존재하는 클래스인 HashSet을 사용하여 Set을 생성해 받을 수 있다.
- 기능
- 선언 : Set<Integer> intSet 의 형태로 선언한다.
- 생성 : new HashSet<Integer>(); 의 형태로 생성한다.
- 추가 : intSet.add(추가할 값) 의 형태로 값을 맨 위에 추가한다.
- 조회 : intSet.get(조회할 순번) 의 형태로 순번에 있는 값을 조회한다.
- 삭제 : intSet.remove(삭제할 값) 의 형태로 삭제할 값을 직접 지정한다.
- 포함확인 : intSet.contains(포함확인 할 값) 의 형태로 해당값이 포함되어 있는지 boolean 값으로 응답받는다.
- 응용된 Set?
- HashSet : 가장 빠르며 순서를 전혀 예측할 수 없다.
- TreeSet : 정렬된 순서대로 보관하며 정렬 방법을 지정할 수 있다.
- LinkedHashSet : 추가된 순서, 또는 가장 최근에 접근한 순서대로 접근 가능하다.
보통 HashSet을 사용하는데, 순서보장이 필요하면 LinkedHashSet을 주로 사용한다.
// Set
// (사용하기 위해선 import java.util.Set; 와 java.util.HashSet; 를 추가해야한다.)
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Set<Integer> intSet = new HashSet<Integer>(); // 선언 및 생성
// 추가
intSet.add(1);
intSet.add(2);
intSet.add(3);
intSet.add(3); // 중복된 값은 덮어쓴다.
intSet.add(3); // 중복된 값은 덮어쓴다.
for (Integer value : intSet) {
System.out.println(value); // 1,2,3 출력
}
// contains()
System.out.println(intSet.contains(2)); // true 출력
System.out.println(intSet.contains(4)); // false 출력
// remove()
intSet.remove(3); // 3 삭제
for (Integer value : intSet) {
System.out.println(value); // 1,2 출력
}
}
}
'TIL > Java' 카테고리의 다른 글
[TIL][Java][2023-12-08] 객체 지향 프로그래밍 (0) | 2023.12.08 |
---|---|
[TIL][Java][2023-12-07] 컬렉션 - Map (1) | 2023.12.07 |
[TIL][Java][2023-12-05] 컬렉션 - Queue (2) | 2023.12.05 |
[TIL][Java][2023-12-04] 컬렉션 List - Stack (1) | 2023.12.04 |
[TIL][Java][2023-12-01] 컬렉션 List - LinkedList (0) | 2023.12.01 |