キーとして文字列を、値として文字列の配列を持つ BiMap を持っています。今、私は単一の文字列 (値配列の一部) でキーを取得しようとしています。
private static BiMap<String, String[]> map = ImmutableBiMap.<String, String[]>builder().build();
static {
map.put("000", new String[] {"CH", "CHE", "Switzerland"});
map.put("001", new String[] {"US", "USA", "United States of America"});
map.put("002", new String[] {"IT", "ITA", "Italy"});
}
次の方法では、「CH」で検索して「000」を取得しようとしています(これは機能しません)。
private static String getKey(Map<String,String[]> map, String find) {
Map<String[], String> inversedMap = map.inverse();
if(inversedMap.containsKey() {
return inversedMap.get(find);
}
return null;
}
このようなキーを「見つける」方法はありますか?それなしでは、次のような配列で検索する必要があります:String[] find = new String[] {"CH", "CHE", "Switzerland"};
すべての値とキーは一意であるため、単一の結果のみが期待されます。そして、私は常に配列の最初の値を探しています。「CH」または「US」。