ホームページ  >  記事  >  Java  >  値アクセス用に複数のキーを含むマップを作成するにはどうすればよいですか?

値アクセス用に複数のキーを含むマップを作成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-05 17:16:021002ブラウズ

How to Create a Map with Multiple Keys for Value Access?

複数のキーを使用したマップの実装

質問:

データを作成するにはどうすればよいですか? Map のように動作しますが、その値にアクセスするために複数の (異なる型の) キーを使用する構造ですか?キーは一意であることが保証されます。 getByKey1、getByKey2、containsKey1、containsKey2 のようなメソッドが必要です。

答え:

1 つの方法は、2 つの内部マップを使用することです:

  • Map
  • Map

各キーには独自の Map があるため、このメソッドを使用すると、どちらのキーを使用しても値を検索できます。

追加メモ:

  • Java の Map のキーとしてタプルまたはペアを使用するという提案は、この場合は機能しません。これは、値を検索できる必要があるためです。指定された 2 つのキーのうちの 1 つだけです。

コード例:

<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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。