- ベストアンサー
HashMapで、valueにマッピングされているkeyを取得したい。
HashMapについて教えて下さい。 HashMapで、valueにマッピングされているkeyを取得したいのですが そんなことって出来るのでしょうか? keyにマッピングされているvalueを取得することは できますよね。その逆をしたいのですが。 尚、この場合、valueにマッピングされているkeyは 必ず一つです。 もし、分かる方がいましたら 教えていただけないでしょうか・・。
- みんなの回答 (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; } } (未テスト)
その他の回答 (1)
- yuji
- ベストアンサー率37% (64/169)
回答No.2
#1の方と基本的には同じです。 メモリ消費には目をつぶる、というのでしたら、 hashMap1.put(key, value); のときに hashMap2.put(value, key); のように逆引き用のHashMapを作ってそこに登録するのも 手だと思います。 (valueにマッピングされるkeyが一意の場合に限ります。)