• ベストアンサー

HashMapで、valueにマッピングされているkeyを取得したい。

HashMapについて教えて下さい。 HashMapで、valueにマッピングされているkeyを取得したいのですが そんなことって出来るのでしょうか? keyにマッピングされているvalueを取得することは できますよね。その逆をしたいのですが。 尚、この場合、valueにマッピングされているkeyは 必ず一つです。 もし、分かる方がいましたら 教えていただけないでしょうか・・。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

要素を全部たぐって調べるしかないのではないでしょうか? // 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が一意の場合に限ります。)

関連するQ&A