NavigableMap
近接したキーを取得するためのマップ – NavigableMapインターフェイスNavigableMapは、指定されたキーに近接したキーを取得するための機能を備えたマップです。NavigableMapを利用することで、たとえば指定されたキー周辺のキーを取得したい、というような処理を手軽に実装できます。 NavigableMapインターフェイスで提供されている主なメンバーは、以下の通りです。
| NavigableMapインターフェイスで利用できる主なメソッド | ||
|---|---|---|
| 分類 | メンバー | 概要 |
| キー | ceilingKey(K key) | 指定したキーと等しいか大きいキーで最小のキーを取得 |
| floorKey(K key) | 指定したキーと等しいか小さいキーで最大のキーを取得 | |
| higherKey(K key) | 指定したキーよりも大きいキーで最小のキーを取得 | |
| lowerKey(K key) | 指定したキーよりも小さいキーで最大のキーを取得 | |
| 値 | ceilingEntry(K key) | 指定したキーと等しいか大きいキーで最小の値を取得 |
| floorEntry(K key) | 指定したキーと等しいか小さいキーで最大の値を取得 | |
| higherEntry(K key) | 指定したキーよりも大きいキーで最小の値を取得 | |
| lowerEntry(K key) | 指定したキーよりも小さいキーで最大の値を取得 | |
| サブマップ | cheadMap(K toKey [,boolean inclusive]) | 指定したキーよりも小さいキーを持つサブマップを取得 (引数inclusiveがtrueの場合は指定したキーと等しいものを含む) |
| tailMap(K fromKey [, boolean inclusive]) | 指定したキーよりも大きいキーを持つサブマップを取得 (引数inclusiveがtrueの場合は指定キーと等しいものを含む) |
|
前述のTreeMapクラスもまた、NavigableMapインターフェイスを実装しています。以下は、TreeMapを利用して、あらかじめ用意された辞書から目的の単語を検索する例です。単語を指定すると、それに最も近い前後の単語を候補として提案します。
CollNavigable.java
package com.example.mynavi.collection;
import java.util.NavigableMap;
import java.util.TreeMap;
public class CollNavigable {
public static void main(String[] args) {
NavigableMap<String, String> map = new TreeMap<String, String>() {
{
put("ketchup", "ケチャップ");
put("margarine", "マーガリン");
put("miso", "味噌");
put("mustard", "マスタード");
put("oil", "油");
}
};
String key = "mayonnaise";
System.out.print("お探しの調味料は");
System.out.print(map.lowerEntry(key) + "または");
System.out.print(map.ceilingEntry(key));
System.out.println("ではありませんか?");
}
}
お探しの調味料はmargarine=マーガリンまたはmiso=味噌ではありませんか?






