NavigableMapを探しています。これはSortedMapのサブタイプであり、ソートされるマップの性質に加えていくつかの機能も利用できます。Navigableマップは「SortedMapインターフェースに取って代わることを意図している」ことに注意してください。(Java SE 6 Collections Frameworkの機能強化)。現在実装しているものはすべて実装さSortedMap
れてNavigableMap
おり、これは真実のままです。
特に、floorKey(K key)
「指定されたキー以下の最大のキーを返すメソッド、またはそのようなキーがない場合はnullを返します。
これは、マップの特定のキーまたはサブマップを取得できる多くのメソッドの1つにすぎません。
- 天井/床(パラメーターよりも高い/低いエントリ)
- 降順でのキーまたはマップへのアクセス
- ヘッド/テール(特定のキーよりも小さい/大きいエントリ)
- 高い/低い(パラメータよりも高いまたは低い次のキー)
- サブマップ(2つのキーが与えられ、2つのキーの間にあるマップを返します)
Javaには、NavigableMapの2つの実装、TreeMapとConcurrentSkipListMapがあります。
スキップリストのアイデア/実装を見ると、このような構造とクエリで本当にうまく機能する理由がわかります。