NavigableMap — 탐색 메서드를 가진 정렬 맵
NavigableMap — 탐색 메서드를 가진 정렬 맵
NavigableMap<K, V>는 주어진 검색 대상에 대해 가장 가까운 일치를 반환하는 탐색(navigation) 메서드로 확장된 SortedMap 이에요.
본문
public interface NavigableMap<K, V> extends SortedMap<K, V>
lowerEntry(K), floorEntry(K), ceilingEntry(K), higherEntry(K)는 각각 주어진 키보다 작은, 작거나 같은, 크거나 같은, 큰 키와 연관된 Map.Entry를 반환하고, 그런 키가 없으면 null을 반환해요. lowerKey/floorKey/ceilingKey/higherKey는 키만 반환해요. 이 모든 메서드는 순회가 아닌 위치 찾기를 위해 설계됐어요.
NavigableMap은 오름차순 또는 내림차순 키 순서로 접근·순회할 수 있어요. descendingMap()은 모든 관계·방향 메서드의 방향을 반전시킨 뷰를 반환해요. 오름차순 연산과 뷰의 성능이 내림차순보다 보통 빠르지만, 구현에 따라 다를 수 있어요.
subMap(K, boolean, K, boolean), headMap(K, boolean), tailMap(K, boolean)은 하한·상한이 포함인지 제외인지 나타내는 추가 인자를 받는다는 점에서 SortedMap의 동명 메서드와 달라요. firstEntry(), pollFirstEntry(), lastEntry(), pollLastEntry()는 각각 최소·최대 매핑을 반환하거나 제거하고 반환하며, 없으면 null을 반환해요.
탐색 메서드
lowerEntry(K)/lowerKey(K)— 주어진 키보다 엄격히 작은 최대 키의 매핑/키.floorEntry(K)/floorKey(K)— 주어진 키보다 작거나 같은 최대 키.ceilingEntry(K)/ceilingKey(K)— 주어진 키보다 크거나 같은 최소 키.higherEntry(K)/higherKey(K)— 주어진 키보다 엄격히 큰 최소 키.firstEntry()/lastEntry()— 최소/최대 키의 매핑(빈 맵이면null).pollFirstEntry()/pollLastEntry()— 최소/최대 매핑을 제거하고 반환(빈 맵이면null).
반환된 Map.Entry는 호출 시점 매핑의 스냅샷을 나타내며, setValue로 기본 맵을 수정하는 것은 지원하지 않아요.
뷰 메서드
descendingMap()— 역순 뷰를 반환해요.reversed()와 동등해요.navigableKeySet()— 오름차순 키의NavigableSet뷰를 반환해요.descendingKeySet()— 내림차순 키의NavigableSet뷰를 반환해요.subMap(K, boolean, K, boolean)—fromKey~toKey범위의 뷰를 반환해요.headMap(K, boolean)—toKey보다 작은(또는inclusive면 같거나 작은) 키의 뷰를 반환해요.tailMap(K, boolean)—fromKey보다 큰(또는 같거나 큰) 키의 뷰를 반환해요.- 또한
SortedMap의subMap(K,K),headMap(K),tailMap(K)를 상속해요.