컬렉션 프레임워크 (Collection Framework) - 6.4. NavigableMap

CJI0524·2024년 7월 12일

Java/Collection Framework

목록 보기
22/26

1. NavigableMap

NavigableMapSortedMap을 상속한 인터페이스로 탐색 관련 메서드를 추가하여 양방향 탐색 및 세밀한 범위 검색을 가능하게 한다.한다. 이 인터페이스는 더 많은 네비게이션 기능을 포함하여 키의 순서를 기반으로 한 다양한 연산을 가능하게 합니다.

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

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

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

삽입

메서드기능
Object put(Object key, Object value)NavigableMap에 value 객체를 key 객체에 연결하여 저장
void putAll(Map t)지정된 NavigableMap의 모든 key-value 쌍을 추가

탐색

메서드기능
boolean containKey(Object key)지정된 key 객체와 일치하는 NavigableMap의 key 객체가 있는지 확인
boolean containValue(Object value)지정된 value 객체와 일치하는 NavigableMap의 value 객체가 있는지 확인
Set entrySet()NavigableMap에 저장되어 있는 모든 key-value 쌍을 NavigableMap.Entry 타입의 객체로 저장한 Set을 반환
Set keySet()NavigableMap에 저장된 모든 key 객체를 반환
Object get(Object key)지정한 key 객체에 대응하는 value 객체를 찾아서 반환
Collection values()NavigableMap에 저장된 모든 value 객체를 반환

삭제

메서드기능
Object remove(Object key)지정한 key 객체와 일치하는 key-value 객체를 삭제
void clear()NavigableMap의 모든 객체를 삭제

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

메서드기능
Object firstKey()맵에서 첫 번째(가장 작은) 키를 반환
Object lastKey()맵에서 마지막(가장 큰) 키를 반환
SortedMap headMap(Object toKey)첫번째 키부터 지정된 범위에 속한 모든 요소가 담긴 SortedMap을 반환
toKey는 포함하지 않음
SortedMap tailMap(Object fromKey)지정된 키부터 마지막 요소의 범위에 속한 요소가 담긴 SortedMap을 반환
SortedMap subMap(Object fromKey, Object toKey)지정된 두 개의 키 사이에 있는 모든 요소들이 담긴 SortedMap을 반환
toKey는 포함하지 않음

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

탐색

메서드기능
Map.Entry lowerEntry(Object key)지정된 키(key)보다 작은 키를 가진 가장 높은 항목을 반환
그런 항목이 없으면 null을 반환
Map.Entry higherEntry(Obejct key)지정된 키(key)보다 큰 키를 가진 가장 낮은 항목을 반환
그런 항목이 없으면 null을 반환
Object lowerKey(Object key)지정된 키(key)보다 작은 키를 반환
그런 키가 없으면 null을 반환
Object higherKey(Object key)지정된 키(key)보다 큰 키를 반환
그런 키가 없으면 null을 반환
Map.Entry floorEntry(Object key)지정된 키(key)와 같거나 작은 키를 가진 가장 높은 항목을 반환
그런 항목이 없으면 null을 반환
Map.Entry ceilingEntry(Object key)지정된 키(key)와 같거나 큰 키를 가진 가장 낮은 항목을 반환
그런 항목이 없으면 null을 반환
Object floorKey(Object key)지정된 키와 같거나 작은 키를 반환
그런 키가 없으면 null을 반환
Object ceilingKey(Object key)지정된 키와 같거나 큰 키를 반환
그런 키가 없으면 null을 반환
Map.Entry firstEntry()첫 번째(가장 낮은) 항목을 반환
맵이 비어있으면 null을 반환
Map.Entry lastEntry()마지막(가장 높은) 항목을 반환
맵이 비어있으면 null을 반환

부분집합 반환

메서드기능
NavigableMap subMap(Object fromKey, boolean fromInclusive, Object toKey, boolean toInclusive)지정된 두 개의 키 사이에 있는 모든 요소들이 담긴 NavagableMap을 반환.
fromInclusive와 toInclusive를 사용하여 경계 요소의 포함 여부를 지정 가능.
NavigableMap headMap(Object toKey, boolean inclusive)NavigableMap에 저장된 첫번째 요소부터 지정된 범위에 속한 모든 요소가 담긴 NavigableMap을 반환.
Inclusive를 사용하여 경계 요소의 포함 여부를 지정 가능.
NavigableMap tailMap(Object fromKey, boolean inclusive)지정된 키부터 마지막 요소의 범위에 속한 요소가 담긴 NavigableMap을 반환.
Inclusive를 사용하여 경계 요소의 포함 여부를 지정 가능.

삭제

메서드기능
Map.Entry pollFirstEntry()첫 번째(가장 낮은) 항목을 제거하고 반환 맵이
비어있으면 null을 반환
Map.Entry pollLastEntry()마지막(가장 높은) 항목을 제거하고 반환 맵이
비어있으면 null을 반환

2.4. NavigableMap.Entry 인터페이스에서 정의된 메서드

메서드기능
boolean equals(Obejct o)동일한 Entry인지 비교
Object getKey()Entry의 key 객체를 반환
Object getValue()Entry value 객체를 반환
int hashCode()Entry의 해시코드를 반환
Object setValue(Object value)Entry의 value 객체를 지정된 객체로 변경

2.5. 추가 핵심 기능

Object 메서드

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

컬렉션 상태 체크 / 변경

메서드기능
boolean isEmpty()NavigableMap이 비어있는지 확인
int size()NavigableMap에 저장된 key-value 쌍의 개수를 반환
Comparator comparator()현재 NavigableMap이 사용하는 Comparator를 반환
기본 자연 순서를 사용하는 경우에는 null을 반환
NavigableSet navigableKeySet()NavigableMap의 모든 키가 담긴 NavigableSet을 반환
NavigableSet descendingKeySet()NavigableMap에 저장된 키를 역순으로 정렬해서 NavigableSet에 담아서 반환
NavigableMap descendingMap()NavigableMap에 저장된 Entry를 역순으로 정렬해서 NavigableMap에 담아서 반환

이러한 기능을 가진 NavigableMapTreeMap 클래스가 구현한다.

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

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

profile
개발돌이

0개의 댓글