プロが教える店舗&オフィスのセキュリティ対策術

HashMapについて教えて下さい。
HashMapで、valueにマッピングされているkeyを取得したいのですが
そんなことって出来るのでしょうか?

keyにマッピングされているvalueを取得することは
できますよね。その逆をしたいのですが。

尚、この場合、valueにマッピングされているkeyは
必ず一つです。

もし、分かる方がいましたら
教えていただけないでしょうか・・。

A 回答 (2件)

要素を全部たぐって調べるしかないのではないでしょうか?



// map、value が与えられているとして、
Object key = null;
for (Iterator i = map.keySet ().iterator (); i.hasNext (); ) {
Object k = i.next ();
Object v = map.get (k);
if (value.equals (v)) {
key = k;
break;
}
}

(未テスト)
    • good
    • 0

#1の方と基本的には同じです。



メモリ消費には目をつぶる、というのでしたら、
hashMap1.put(key, value);
のときに
hashMap2.put(value, key);
のように逆引き用のHashMapを作ってそこに登録するのも
手だと思います。
(valueにマッピングされるkeyが一意の場合に限ります。)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!