컬렉션 프레임워크 (Collection Framework) - 4.4. NavigableSet

CJI0524·2024년 7월 11일

Java/Collection Framework

목록 보기
15/26

1. NavigableSet

NavigableSetSortedSet을 상속한 인터페이스로 탐색 관련 메서드를 추가하여 양방향 탐색 및 세밀한 범위 검색을 가능하게 한다.

2. NavigableSet 인터페이스에 정의된 메서드 목록

2.1. 삽입 / 탐색 / 삭제 메서드

반환타입이 boolean인 메서드들은 작업에 성공하거나 사실이면 true, 아니면 false를 반환한다.

삽입

메서드기능
boolean add(Object o)
boolean addAll(Collection c)
지정된 객체(o) 또는 Collection(c)의 객체들을 NavigableSet에 추가.

탐색

메서드기능
boolean contains(Object o)
boolean containsAll(Collection c)
지정된 객체(o) 또는 Collection(c)의 객체들이 포함되어 있는지 확인.

삭제

메서드기능
boolean remove(Object o)
boolean removeAll(Collection c)
지정된 객체(o) 또는 Collection(c)의 객체들을 삭제.
boolean retainAll(Collection c)지정된 Collection에 포함된 객체만을 남기고, 다른 객체들은 NavigableSet에서 삭제
집합의 교집합 개념과 유사함.
void clear()NavigableSet의 모든 객체를 삭제

2.2. SortedSet에서 추가적으로 활용하는 메서드

메서드기능
Object first()정렬된 순서에서 첫 번째 객체를 반환
Object last()정렬된 순서에서 마지막 객체를 반환
SortedSet headSet(Object toElement)지정된 객체보다 작은 값의 객체들을 반환
SortedSet tailSet(Object fromElement)지정된 객체보다 큰 값의 객체들을 반환
SortedSet subSet(Object fromElement, Object toElement)범위검색(fromElement와 toElement사이)의 결과를 반환

2.3. NavigableSet에서 추가적으로 활용하는 메서드 ★

탐색

메서드기능
Object lower(Object e)지정된 객체보다 작은 값을 가진 객체중 제일 가까운 값의 객체를 반환
만약 그런 요소가 없으면 null을 반환
Object higher(Object e)지정된 객체보다 큰 값을 가진 객체중 제일 가까운 값의 객체를 반환
만약 그런 요소가 없으면 null을 반환
Object floor(Object e)지정된 요소보다 작거나 같은 값을 가진 객체중 제일 가까운 값의 객체를 반환
만약 그런 요소가 없으면 null을 반환
Object ceiling(Object e)지정된 요소보다 크거나 같은 값을 가진 객체중 제일 가까운 값의 객체를 반환
만약 그런 요소가 없으면 null을 반환

부분집합 반환

메서드기능
NavigableSet subSet(Object fromElement, boolean fromInclusive, Object toElement, boolean toInclusive)지정된 범위의 요소를 포함하는 부분 집합을 반환
fromInclusive와 toInclusive를 사용하여 경계 요소의 포함 여부를 지정 가능
NavigableSet headSet(Object toElement, boolean inclusive)지정된 요소보다 작은 요소를 포함하는 부분 집합을 반환
inclusive를 사용하여 경계 요소의 포함 여부를 지정 가능
NavigableSet tailSet(Object fromElement, boolean inclusive)지정된 요소보다 큰 요소를 포함하는 부분 집합을 반환
inclusive를 사용하여 경계 요소의 포함 여부를 지정 가능

삭제

메서드기능
Object pollFirst()첫 번째 (가장 낮은) 요소를 제거하고 반환
만약 집합이 비어 있으면 null을 반환
Object pollLast()마지막 (가장 높은) 요소를 제거하고 반환
만약 집합이 비어 있으면 null을 반환

2.4. 추가 핵심 기능

Object 메서드

메서드기능
boolean equals(Object o)동일한 NavigableSet인지 확인
int hashCode()NavigableSet의 해시 코드를 반환

컬렉션에 저장된 요소 접근

메서드기능
Iterator iterator()해당 NavigableSet의 iterator를 얻어서 반환
Iterator descendingIterator()요소들을 역순으로 반복하는 반복자를 반환

컬렉션 상태 체크 / 변경

메서드기능
boolean isEmpty()NavigableSet이 비어있는지 확인
int size()NavigableSet에 저장된 객체의 개수를 반환
Comparator comparator()NavigableSet에 사용되는 Comparator를 반환. 자연 순서에 따라 정렬된 경우 null을 반환
NavigableSet descendingSet()요소들을 역순으로 정렬한 NavigableSet을 반환

2.5. 기타

메서드기능
Object[] toArray()NavigableSet에 저장된 객체를 객체배열(Object[])로 반환
Object[] toArray(Object[] a)지정된 배열에 NavigableSet의 객체를 저장해서 반환

이러한 기능을 가진 NavigableSet 인터페이스를 TreeSet 클래스가 구현한다.

3. 해당 게시글 작성에 참고한 글 목록

자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서

profile
개발돌이

0개의 댓글