당신은 NavigableMap을 찾고 있습니다. 이것은 SortedMap의 하위 유형이며 정렬되는 맵의 특성 외에 몇 가지 기능을 사용할 수 있습니다. 탐색 가능 맵은 "SortedMap 인터페이스를 대체하기위한 것입니다." ( Java SE 6 Collections Framework 향상 ). 현재 구현 SortedMap
하고있는 모든 것이 구현 NavigableMap
될 가능성이 높습니다.
특히, floorKey(K key)
"가장 큰 키를 주어진 키보다 작거나 같은 방법 으로 반환하거나 그러한 키가없는 경우 null을 반환하는 방법입니다.
이것은 특정 키 또는 맵의 서브맵을 얻을 수있는 많은 방법 중 하나입니다.
- 천장 / 바닥 (매개 변수보다 높거나 낮은 항목)
- 내림차순으로 키 또는 맵 액세스
- 머리 / 꼬리 (주어진 키보다 작거나 큰 항목)
- 높음 / 낮음 (매개 변수보다 높거나 낮은 다음 키)
- 서브맵 (두 키가 주어지면 두 키 사이에있는 맵을 리턴)
Java에는 NavigableMap의 두 가지 구현 ( TreeMap 및 ConcurrentSkipListMap)이 있습니다.
건너 뛰기 목록 의 아이디어 / 구현을 보면 왜 그러한 구조와 쿼리에서 제대로 작동하는지 알 수 있습니다.