Maison > Java > javaDidacticiel > Comment créer une carte avec plusieurs clés pour l'accès aux valeurs ?

Comment créer une carte avec plusieurs clés pour l'accès aux valeurs ?

DDD
Libérer: 2024-11-05 17:16:02
original
1103 Les gens l'ont consulté

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

Implémentation d'une carte avec plusieurs clés

Question :

Comment puis-je créer une donnée structure qui se comporte comme une carte mais utilise plusieurs clés (typées différemment) pour accéder à ses valeurs ? Les clés sont garanties uniques. J'ai besoin de méthodes telles que getByKey1, getByKey2, containKey1 et containKey2.

Réponse :

Une approche consiste à utiliser deux cartes internes :

  • Map
  • Map

Cette méthode vous permet de rechercher des valeurs en utilisant l'une ou l'autre touche car chaque touche a sa propre carte.

Notes supplémentaires :

  • La suggestion d'utiliser un tuple ou une paire comme clé pour la carte Java ne fonctionnerait pas dans ce cas car vous devez pouvoir rechercher des valeurs par une seule des deux clés spécifiées.

Exemple de code :

<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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal