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=味噌ではありませんか?