Set 컬렉션
: 순서와 상관없이 중복을 허용하지않는 요소들의 집한을 관리하기 위한 인터페이스이다
객체를 중복해서 저장할 수 없고, 하나의 null만 저장할 수 있다
- 동일한 요소를 중복 저장 할 수 없고 이미 존재하는 요소를 추가하려고하면 저장되지 않는다
- 요소가 추가되는 순ㅅ를 보장하지 않고 실제 출력될 때 순서가 다를 수 있다
- 중복이 없기 때문에 특정 요소가 존재하는지에 대헤 여부를 빠르게 확인 가능하다
| 구현 | 클래스설명 | 특징 |
| HashSet | 가장 많이 사용되는 Set 구현체로, 해시 테이블을 이용해 요소를 저장 | - 순서가 보장되지 않음 - 빠른 검색 속도 - null 요소 허용 |
| LinkedHashSet | HashSet과 비슷하지만, 요소가 추가된 순서를 유지 | - 삽입 순서 유지 - null 요소 허용 - 성능은 HashSet보다 조금 느림 |
| TreeSet | 요소를 정렬된 순서로 저장해요. 내부적으로 이진 탐색 트리(Red-Black Tree) 구조를 사용 | - 오름차순 정렬 - 정렬 기준에 따라 정렬 가능 (Comparator 사용) - null 요소 허용하지 않음 |
| 비교항목 | HashSet | LinkedHashSet | TreeSet |
| 중복 허용 여부 | 중복 허용하지 않음 | 중복 허용하지 않음 | 중복 허용하지 않음 |
| 순서 보장 여부 | 순서 보장하지 않음 | 삽입 순서 보장 | 정렬된 순서 유지 |
| 성능 | 검색, 삽입, 삭제 모두 빠름 | 검색, 삽입, 삭제 빠르지만 HashSet보다는 느림 | 검색, 삽입, 삭제 속도는 느리지만 정렬이 필요할 때 유용 |
| 정렬 | X | X | 요소를 자동으로 정렬 |
| null 허용 여부 | 허용 | 허용 | 허용하지 않음 |
| 기능 | 메서드(매개변수) | 설명 |
| 객체 추가 | add(E element) | Set에 객체를 추가합니다. 만약 동일한 객체(중복)가 존재하면 추가되지 않고 false를 반환 |
| addAll(Collection c) | 주어진 컬렉션의 모든 요소를 Set에 추가합니다. 중복된 요소는 제외하고, 추가된 경우 true를 반환 | |
| 객체 검색 | boolean contains(Object o) | 특정 객체가 Set에 존재하는지 여부를 확인합니다. 객체가 있으면 true, 없으면 false를 반환 |
| isEmpty() | Set이 비어 있는지 여부를 확인합니다. 비어 있으면 true, 그렇지 않으면 false를 반환. | |
| Iterator<E>iterator() | 저장된 객체를 한 번씩 가져오는 반복자 리턴 | |
| int size() | 저장되어 있는 전체 객체 수 리턴 | |
| 객체 삭제 | boolean remove(Object o) | Set에서 특정 객체를 삭제합니다. 삭제에 성공하면 true, 삭제할 객체가 없으면 false를 반환 |
| void clear() | Set의 모든 요소를 제거합니다. Set은 빈 상태가 된다 |
'Java' 카테고리의 다른 글
| Java_컬렉션 자료구조_검색기능을 강화시킨 컬렉션_TreeSet (0) | 2024.10.18 |
|---|---|
| Java_컬렉션 자료구조_Map 컬렉션 (0) | 2024.10.17 |
| Java_컬렉션 자료구조_Vector (0) | 2024.10.17 |
| Java_컬렉션 자료구조_ArrayList,LinkedList (0) | 2024.10.17 |
| Java_컬렉션 자료구조_List 컬렉션 (0) | 2024.10.17 |