複数のキーを使用したマップの実装
プログラミングにおける一般的なニーズは、マップのように機能するデータ構造ですが、次のような機能を備えていることです。複数の (異なる型の) キーを使用して値にアクセスします。一般的なマップは単一タイプのキーを対応する値に関連付けますが、この要件にはより柔軟なアプローチが必要です。
解決策: 1 つのマップではなく 2 つのマップ
マップの性質上、Java で複数のキーを表すために複合キー (タプルやペアなど) を使用するだけでは十分ではありません。これは、マップがキー検索のハッシュ コードと等価性チェックに依存しているためです。したがって、複合キーのコンポーネントの 1 つだけを使用して値を検索することは不可能になります。
代わりに、推奨される解決策は 2 つの別個のマップを内部的に維持することです。および 1 つのマップ
ラッパー クラスを使用した実装
単一のインターフェイスが必要な場合は、ラッパー クラスを作成して公開できます。いずれかのキーによって値にアクセスするためのメソッド。このラッパー クラスは、実際のルックアップを 2 つの基礎となるマップに委任し、ユーザーに統合インターフェイスを提供します。
結論
2 つのマップを内部的に使用し、潜在的にラッパー クラスを使用すると、複数のキーを持つマップのように動作するデータ構造を実装できます。このアプローチにより、キーの一意性を維持しながら、いずれかのキー タイプを使用して値を効率的に取得できます。
以上がJava で複数のキーを持つマップを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。