0

キーとして文字列を、値として文字列の配列を持つ 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」。

4

2 に答える 2