4

重複の可能性:
Javaハッシュマップ:値からキーを取得する方法は?

キーと値のルックアップを実行できるJavaデータ構造(ある種のマップ)を探しています。たとえば、文字列と整数のセットの間に1対1のマッピングがあるとします。このオブジェクトマッパーを呼び出します。次のことを実行できるようにしたいと思います。

  1. mapper.getAssociated(value):これはキーを返します
  2. mapper.getAssociated(key):これは値を返します
4

2 に答える 2

6

私はあなたがグーグルグアバBiMap(または)コモンズBidiMapを探していると思います。

例:

BidiMap bidiMap = new DualHashBidiMap( );
bidiMap.put( "il", "Illinois" );
bidiMap.put( "az", "Arizona" );
bidiMap.put( "va", "Virginia" );
// Retrieve the key with a value via the inverse map
String vaAbbreviation = bidiMap.inverseBidiMap( ).get( "Virginia" );

// Retrieve the value from the key
String illinoisName = bidiMap.get( "il" );

BiMapの例については、この投稿を参照してください。

于 2012-12-09T04:15:05.000 に答える
2

たとえば、Guavaのインターフェイスの実装を使用することを検討してください。ドキュメントから:BiMapHashBiMap

バイマップ(または「双方向マップ」)は、その値とそのキーの一意性を保持するマップです。この制約により、バイマップは「インバースビュー」をサポートできます。これは、このバイマップと同じエントリを含むが、キーと値が逆になっている別のバイマップです。

したがって、を指定すると、ビューを返すためにBiMap<Foo, Bar>呼び出すことができます。inverse()BiMap<Bar, Foo>

于 2012-12-09T04:14:54.623 に答える