웹개발/JAVA

Collection - Set Interface

bergerac 2025. 2. 24. 09:11

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