あるプログラマの日記

プログラマのメモ、出来事、考えたこと、勉強とかの雑記

双方向のBiMap

ImmutableBiMap の inverse メソッドを使用してキーと値を反転させて値からキーも取得できる。

import com.google.common.collect.ImmutableBiMap;
import com.google.common.collect.BiMap;
..snip..
private static final BiMap<Integer,String> bimap
	= ImmutableBiMap.of(0, "black", 1, "white", 2, "red", 3, "blue");
    ..
    final String color = bimap.get(id); // キーから値を取得
    ..
    private void foo(String value) {
        // 値からキーを取得
        assert bimap.containsValue(value) : value;
        int key = bimap.inverse().get(value);
        ..
    }
..snip..