ナビゲーション可能なMap

完全にメモ

範囲 名称
0.0〜0.1 0.1 A
0.1〜0.4 0.3 C
0.4〜1.0 0.6 B

上記のようなデータセットが有った場合、0.29の名称は何になるのか?という事を考える。(範囲は0〜1まで。)

NavigableMapを実装した、TreeMapを使用すると簡単に実現できる。

import java.util.NavigableMap;
import java.util.TreeMap;

public class NavigableMapSample {
	public NavigableMapSample() {
		NavigableMap<Double, String> map = new TreeMap<Double, String>();
		map.put(0.1, "A");
		map.put(0.4, "C");
		map.put(1.0, "B");

		//指定されたキーと等しいか大きいキーを返します
		System.out.println("0.29: " + map.get(map.ceilingKey(0.29)));
		

	}

	public static void main(String[] args) {
		new NavigableMapSample();
	}
}


結果

0.29: C