キーだけでなく価値によってもすばやく検索する必要がある場合はどうすればいいですか?言い換えれば、キー・バリューとは対照的にキー・キーのような構造がありますか?Javaでキー・キー・マップ(キー・バリューではなく)を使用できますか?
8
A
答えて
9
あなたは好きなように聞こえますbimap - 私はあなたの場合はGuavaに実装を使用します。 BiMap
インターフェイスと、HashBiMap
とImmutableBiMap
などのさまざまな実装があります。
一般に、1つの「側」(K1からK2)からBiMap
が表示され、inverse()
を呼び出して物事(K2からK1)の反対意見を得ることに注意してください。
5
いくつかのライブラリには、そのようなものがあります。たとえば、Google GuavaはBiMap
(双方向マップ)です。残念ながら、標準Javaライブラリには双方向マップはありません。明確にするために
0
、次のキーを持つマップのいくつかの並べ替えています:次に、あなたがmap.get(「foo」を)やるとフレディを取得したい、またはだろう
Map<String, String> map = new HashMap<String, String>();
map.put("foo", "Freddy");
map.put("bar", "Bobby");
:valueのペアをmap.get( "Freddy")とfooを得る?
もしそうなら、this postをチェックしてください。
関連する問題
- 1. Goでは、キーごとにロックを使用してマップの各キーを同期できますか?
- 2. anglejsを使用して元のキーではなく他のキーをトリガー
- 3. 無効なキーでDSL用groovyマップを使用する
- 4. Googleキーなしでgoogle-translateを使用できますか?
- 5. キー/配列ではなくJsonConverterのキー/値を書く方法
- 6. キーではなく値でマップを並べ替える
- 7. VimでCtrlキーとCtrlキーをマップする方法はありますか?
- 8. JTextField JavaでEnterキーを使用
- 9. ルビーのキー/バリューのスタブをENV
- 10. Spacemacs(またはEmacs)では、キーを他のキーにバインドできますか?
- 11. ノンクラスタード・インデックスで使用できる主キーはありますか?
- 12. 私はlimit_choices_toで外部キーを使用する外部キー
- 13. 複数値のキーを使用したマップですか?
- 14. C++のstd ::マップの値を検索ではなく、キー
- 15. マップのイテレータを使用せずにキー値のペアにアクセスできますか?
- 16. JavaコンソールでCtrlキーとAltキーを検出します
- 17. Javaアプレットペインは矢印キーで移動できますか?
- 18. Javaでキーを押す
- 19. GoのスライスをGoマップのキーとして使用できないのは、配列をキーとして使用するのと同じですか?
- 20. APIキーでfile_get_contentsを安全に使用できますか?
- 21. jinjaテンプレートのキーでgetを使用できますか?
- 22. ジェネレータの「テスト」ジョブで「インクルード」キーを使用できますか?
- 23. BigQuery APIコールでAPIサービスアカウントのキーを使用できますか?
- 24. INNER JOINを主キーで使用できますか?
- 25. HTTPartyでapiキーを使用
- 26. キーダウンイベントなしでCTRLキーとSHIFTキーを検出しますか?
- 27. 修飾子キーをウクレレで再マップできない
- 28. Javaストリームを使用して、キーとそのキーの出現数を含むマップをリストから取得する
- 29. このシナリオでは、NULL可能な外部キーを使用できますか?
- 30. std :: mapをstd :: stringキーとintキーで使用するコスト?
Guavaの「BiMap」は、基本的に2つの 'Map'sをまとめて対称にしていることに注意してください。余分なライブラリを追加したくない場合は、自分で行うことができます。 – Viruzzo