複数のキーを使用したマップの実装
質問:
データを作成するにはどうすればよいですか? Map のように動作しますが、その値にアクセスするために複数の (異なる型の) キーを使用する構造ですか?キーは一意であることが保証されます。 getByKey1、getByKey2、containsKey1、containsKey2 のようなメソッドが必要です。
答え:
1 つの方法は、2 つの内部マップを使用することです:
各キーには独自の Map があるため、このメソッドを使用すると、どちらのキーを使用しても値を検索できます。
追加メモ:
コード例:
<code class="java">import java.util.HashMap; import java.util.Map; class MyMap<K1, K2, V> { private Map<K1, V> map1; private Map<K2, V> map2; public MyMap() { map1 = new HashMap<>(); map2 = new HashMap<>(); } public V getByKey1(K1 key) { return map1.get(key); } public V getByKey2(K2 key) { return map2.get(key); } public boolean containsKey1(K1 key) { return map1.containsKey(key); } public boolean containsKey2(K2 key) { return map2.containsKey(key); } public void put(K1 key1, K2 key2, V value) { map1.put(key1, value); map2.put(key2, value); } }</code>
以上が値アクセス用に複数のキーを含むマップを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。