1. ホーム
  2. java

[解決済み] 複数のキーを持つMapを実装するには?重複

2022-04-22 04:13:08

質問

Mapのように動作するデータ構造が必要です。 しかし、その値にアクセスするために複数の(異なる型の)キーを使用します。

(あまり大雑把にせず、仮に キー)

キーは一意であることが保証されています。

のようなものです。

MyMap<K1,K2,V> ...

みたいなメソッドで。

getByKey1(K1 key)...
getByKey2(K2 key)...
containsKey1(K1 key)...
containsKey2(K2 key)...

何かご提案がありますか?

しか思いつきません。

内部で2つのMapを使用するクラスを作成する。

EDIT を使ったほうがいいという意見もあります。 タプル , a ペア のキーとして使用することができます。 Java の Map ですが、この は機能しない を使用します。

上に書いたように、指定した2つのキーのうち1つだけで値を検索できるようにする必要があります。

マップはキーのハッシュコードを使用し、それらが等しいかどうかをチェックします。

どのように解決するのですか?

2つの地図 1枚 Map<K1, V> と1つの Map<K2, V> . どうしてもインターフェースが必要な場合は、当該メソッドを実装したラッパークラスを記述してください。