2012-01-16 8 views
8

キーだけでなく価値によってもすばやく検索する必要がある場合はどうすればいいですか?言い換えれば、キー・バリューとは対照的にキー・キーのような構造がありますか?Javaでキー・キー・マップ(キー・バリューではなく)を使用できますか?

+1

Guavaの「BiMap」は、基本的に2つの 'Map'sをまとめて対称にしていることに注意してください。余分なライブラリを追加したくない場合は、自分で行うことができます。 – Viruzzo

答えて

9

あなたは好きなように聞こえますbimap - 私はあなたの場合はGuavaに実装を使用します。 BiMapインターフェイスと、HashBiMapImmutableBiMapなどのさまざまな実装があります。

一般に、1つの「側」(K1からK2)からBiMapが表示され、inverse()を呼び出して物事(K2からK1)の反対意見を得ることに注意してください。

5

いくつかのライブラリには、そのようなものがあります。たとえば、Google GuavaBiMap(双方向マップ)です。残念ながら、標準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をチェックしてください。

関連する問題