首頁  >  文章  >  Java  >  如何建立具有多個鍵的映射以進行值存取?

如何建立具有多個鍵的映射以進行值存取?

DDD
DDD原創
2024-11-05 17:16:021001瀏覽

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

實作具有多個鍵的對應

問題:

如何建立資料行為類似於Map 但使用多個(不同類型的)鍵來存取其值的結構?保證密鑰是唯一的。我需要像 getByKey1、getByKey2、containsKey1 和 containsKey2 這樣的方法。

答案:

一種方法是使用兩個內部映射:

  • Map
  • Map

此方法允許您使用任一鍵搜尋值,因為每個鍵都有自己的Map。

附加說明:

  • 使用元組或對作為Java 映射的鍵的建議在這種情況下不起作用,因為您需要能夠通過以下方式搜尋值僅兩個指定鍵之一。

範例程式碼:

<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn