Set Interface(셋 인터페이스)란?
- 중복되지 않고 순서는 상관없다.
- 중복된 요소를 포함하지 않는 객체의 집합
- 객체가 순서를 저장하지 않음(삽입순서가 유지되지 않는다.)
- cf)List Interface : 중복 o, 순서 o, null 요소 포함가능
Set Collection 종류
1. Hash set
가장 많이 사용되는 Set 구현체이며 빠른 데이터 접근이 가능하고 삽입을 지원한다
정렬 또는 순서는 보장하지 않는다.
2. LinkedHashSet
HashSet+순서(HashSet의 기능 확장 형태이다) 중복은 불가능하지만 순서가 있다.
3. TreeSet
데이터가 자동 정렬되어 중복제거와 정렬된 순서 유지가 필요한 경우 사용한다.
중복은 안되지만 순서는 필요할 때 사용한다.
Set Collection의 주요 메서드
add(), remove(), contains(), size(), isEmpty()
Set collection 선언 방법
set<타입> set명 = new Set컬렉션 종류<>();
Set<String> programming = new HashSet<>();
1. 요소 추가
programming.add("java");
programming.add("Python");
programming.add("C");
programming.add("javascript");
System.out.println(programming);
[java, C, javascript, Python]
이와 같이 네 요소가 잘 추가된 것을 볼 수 있다.
programming.add("java");
System.out.println(programming);
을 했을 때 위에서 나온 결과값과 동일한 값이 나옴을 알 수 있는데 이는 Set이 중복을 허용하지 않기 때문이다.
2. 요소 제거
boolean result = programming.remove("Python");
System.out.println(programming);
System.out.println(result);
[java, C, javascript]
true
여기서 result는 삭제가 성공하면 true/ 삭제가 (set에 없어서) 성공하지 못하면 false 가 반환된다.
boolean falseResult = programming.remove("R");
System.out.println(falseResult);//false
3. 크기 측정- size()
System.out.println(programming.size());
4. 포함 여부 확인 - contains
System.out.println(programming.contains("Python"));//false(이미 제거됨)
System.out.println(programming.contains("java"));//true
5. clear(전부삭제), isEmpty(빈 set인지 여부 확인)
System.out.println(programming.isEmpty());//false
programming.clear();
System.out.println(programming.isEmpty());//true
'웹개발 > JAVA' 카테고리의 다른 글
| 클래스 형(ClassType)변환 (0) | 2025.02.26 |
|---|---|
| Collection- Map Interface (0) | 2025.02.25 |
| Collection - Java List (1) | 2025.02.23 |
| Collection Framework (1) | 2025.02.22 |
| Overloading vs Overriding (2) | 2025.02.21 |