Set 인터페이스

✒️ 2025-05-27 16:51 내용 수정


Set 인터페이스

순서가 없는 데이터 집합이고, 중복을 허용하지 않는다.


인터페이스 메서드

Set 인터페이스 메서드 설명
void add(E, e) 해당 집합에 데이터를 순서대로 추가함
boolean equals(Object o) 해당 집합과 전달된 객체가 같은지 확인
boolean isEmpty() 해당 집합이 비어있는지 확인
void remove(Object o) 해당 집합에서 전달된 객체 제거
void clear() 해당 집합의 모든 데이터 제거
int size() 해당 집합에 저장된 데이터의 개수를 반환
boolean contains(Object o) 해당 집합에서 전달된 데이터 존재 여부 확인
Object[] toArray() 해당 집합의 모든 요소를 Object 타입의 배열로 반환
Iterator<E> iterator() 해당 집합의 반복자(iterator)를 반환
void addAll(Collection<? extends E> c) 해당 집합에 컬렉션의 모든 요소를 추가
void removeAll(Collection<?> c) 주어진 컬렉션의 요소를 집합에서 모두 제거
void containsAll(Collections<?> c) 주어진 컬렉션의 모든 요소가 집합에 있는지 확인
void retainAll(Collection<?> c) 주어진 컬렉션과 겹치는 요소만 유지

Set 인터페이스 구현체

Set 인터페이스 구현체 비교

HashSet TreeSet
저장형태 value value
내부 구조 Hash Table Red-Black Tree
정렬/순서 X 자동 정렬
연산 성능 O(1) O(log n)
null 허용 1개 허용 X

1. HashSet

Set<T> 인스턴스이름 = new HashSet<T>();
- Hash Algorithm

1. 저장할 데이터의 키 값을 해시 함수에 넣는다
2. 반환된 값으로 해시 테이블의 인덱스를 구한다
3. 해당 인덱스에 저장된 연결 리스트에 데이터를 저장한다.

2. TreeSet

TreeSet<T> 인스턴스이름 = new TreeSet<T>();
TreeSet 인터페이스 메서드 설명
int first() TreeSet에 있는 최소값 반환
int last() TreeSet에 있는 최대값 반환
int higher(int i) 전달 받은 객체보다 큰 데이터 중 최소값 반환, 없으면 null
int lower(int i) 전달 받은 객체보다 작은 데이터 중 최대값 반환, 없으면 null
E ceiling(E e) 전달 받은 객체보다 크거나 같은 데이터 중 최소값 반환, 없으면 null
Iterator<E> descendingIterator() 오른쪽에서 왼쪽으로 순회(역순)하는 Iterator를 반환
NavigableSet<E> descendingSet() 해당 set의 요소를 역순으로 정렬