0

値が与えられた場合、反復する必要なしに、この値がマップに属するインデックスまたはキーを取得する必要があります。私はJavaを使用しています。

ありがとう

4

4 に答える 4

2

Guava には、双方向マップであるBiMapがあります (各キーと各値は一意です)。

外部ライブラリを使用しない場合は、次の 2 つのオプションしかありません。

  • プレーンを使用するHashMapと、キーを反復処理する必要があります
  • 2 つのハッシュマップを使用します。1 つはキーを値に関連付け、もう 1 つは値をキーに関連付けます (これは本質的に双方向マップが行うことです)。
于 2013-01-11T10:06:43.797 に答える
1

commons-collectionsのBidiMapをいつでも使用できます。

http://commons.apache.org/collections/apidocs/org/apache/commons/collections/BidiMap.html

于 2013-01-11T10:03:56.347 に答える
1

ある種のを使用する必要がありBidirectionalMapます。たとえば、これ: http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/BiMap.html

于 2013-01-11T10:06:34.307 に答える
0

繰り返すことなくしてはいけません。

また、値が複数のキーに属している可能性があるため、質問はやや議論の余地があります。


キー/値の間に1対1の関係がある場合は、関係の各方向に1つずつ、2つのマップを作成し、その値を2番目の(逆)マップのキーとして検索することで実現できます。

于 2013-01-11T10:03:39.783 に答える