IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

[Hashtable]Recuperer les keys grace à Value


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Par défaut [Hashtable]Recuperer les keys grace à Value
    Bonjour

    J'aimerais savoir si c'était possible de récupérer les Keys via une values d'un hashtable?

    Je m'explique :

    Lorsque l'on fait un ExempleMap.get(Key) on met en paramètre un key et il return le value qui lui correspond

    Moi je voudrais faire ExempleMap.getKeyParValue(value) on passe en paramètre un value et on récupère la key.

    Pour être encore plus précis :
    J'ai une map et je veux créer une arborescence ainsi par exemple un element pere A (c'est une value) à pour fils C,D,E (ce sont des keys)
    en gros j'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    hastable.put(c,a);
    hastable.put(d,a);
    hastable.put(e,a);
    Lorsque je fait un ExempleMap.getKeyParValue(A) il me renvoie C,D,E (je pense que pour cela j'aurais besoin d'une boucle while et de stocker ça dans un vecteur)

    Est-ce possible?

    Je vous remercie

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Tel quel, ce n'est pas possible...

    Mais pourquoi donc veux-tu inverser le fonctionnement de la Map?
    Tu peux lier un père à la liste de ses fils dans une Map :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Map<String, List<String>> pereFils = ...;
    Sinon, tu as également des structures spécifiques dédiées aux traitements des arbres.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre confirmé Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Par défaut
    En faite c'est super compliqué :
    Je travaille sur un document xml qui me dit seulement qu'un élément est la sousclasse d'un autre

    j'ai un truc dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <owl:Class rdf:ID="developmental_biology">
      <rdfs:subClassOf>
        <owl:Class rdf:ID="philosophy_of_biology"/>
      </rdfs:subClassOf>
    </owl:Class>
    ainsi developmental_biology est un des fils de philosophy_of_biology, il en à peut-être d'autre ça sera précisément pareillement comme ça dans la suite du document:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <owl:Class rdf:ID="ExempleDeFils">
      <rdfs:subClassOf>
        <owl:Class rdf:ID="philosophy_of_biology"/>
      </rdfs:subClassOf>
    </owl:Class>

    Donc dans ce cas philosophy_of_biology à pour fils ExempleDeFils et developmental_biology

    L'une des solution (les plus simple :p ) que j'ai trouvéc'est de stocker en key: ExempleDeFils et en Value philosophy_of_biology car la key est unique et pas la value or dans mon arbre chaque élément n'a qu'un seul père d'ou le fait que j'ai pensé au MAP dans ce sens

  4. #4
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Tu peux toujours faire une itération sur tes Map.Entry et construire la map inversée - c'est pas génial, mais si t'es coincé ...

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    sinon tu a les maps bidirectionnelle présentes dans la librairie jakarta commons collection qui permet les gets dans les deux sens

  6. #6
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Si tu penses à BidiMap, elle fonctionne comme une Map dans les deux sens, ce qui veut dire qu'une valeur ne peux exister qu'une fois.

    Maintenant il reste la possibilité de créer une classe qui implémente l'interface Map, et qui contienne en sous main une Map<Clé, Valeur> et
    (a) une HashMap<Valeur, Collection<Clé>>, en faisant en en sorte que les 2 soient synchronisées.
    (b) une méthode qui fasse le parcours des entry.

    La version a étant à préférer si tu as beaucoup de lecture, et peu d'édition, et la méthode b dans le cas contraire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recuperer les values d'une Dropdownlist
    Par djedie dans le forum ASP.NET
    Réponses: 1
    Dernier message: 03/04/2007, 07h42
  2. Recupere les tag d'entete d'un fichier mp3
    Par kirbs dans le forum C++Builder
    Réponses: 7
    Dernier message: 05/10/2006, 17h40
  3. Réponses: 6
    Dernier message: 04/01/2004, 20h59
  4. [VB6] [FileListBox] Récupérer les éléments sélectionnés
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/10/2002, 09h11
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo