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

Collection et Stream Java Discussion :

Manipulation d'une hashtable


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de alexorcet
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Par défaut Manipulation d'une hashtable
    Bonsoir a tous

    j'ai le probleme suivant:

    je creer des objet que j'appelle PieceMusee et je les enregistre dans une hashtable que j'appelle collection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     collection.put(pmSN,pmSN.getNi().getId());
    //pmSN est une instance de PieceMusee
    //getNi().getId() retourne un string qui represente la value de la clé de la pmsn
    j'essaye de faire une recherche dans la hastable(collection) , une recherche en fonction de lidentifiant de chaque Piece et ce avec la methode suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void localiser(String identifiantPiece)
         {
              System.out.println("j'y suis");
     
                if((StartUpSwing.collection.containsValue("124ad")) == true)
    //"124ad"existe bien dans la hashtable(je l'ai verifié car je serialise et deserialize la Hashtable au lancement de l'application
                {
     
                    System.out.println("c bon") ;
                }
    Mon probleme est que j'arrive pas a trouver "124ad" pourtant dans ma hashtable il n'existe qu'un objet pieceMusee.
    je ne sais pas si le probleme viens de mon if ou de ma façon d'utiliser contains.

    Merci pour votre aide.

  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
    A voir ton premier bloc de code, je pense que tu inverses "clé" et "valeur".

    Je verrais plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /* put(cle, valeur) et non l'inverse */
    collection.put(pmSN.getNi().getId(),pmSN);
    Ensuite, sachant qu'il existe une interface Collection en JAVA, appeler ta HashTable "collection" est à mon avis une source d'erreurs potentielles, donc à éviter

    En quelle version de JAVA codes-tu? SI tu es en JAVA 1.4 ou supérieur, il vaut mieux privilégier une HashMap à une HashTable

    Ensuite, note technique, les deux lignes suivantes sont strictement équivalentes... utilise-donc plutôt la 2ème, qui économise une opération et est plus claire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    (StartUpSwing.collection.containsValue("124ad")) == true;
    (StartUpSwing.collection.containsValue("124ad"))
    Enfin, lorsqu'on recherche un objet indexé par une clé dans une HashTable (ou HashMap), on effectue cette recherche sur la clé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(StartUpSwing.collection.containsKey("124ad")) { /* ..... */ }
    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 alexorcet
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Par défaut
    Je viens de faire tout ce que tu viens de me dire et ça ne change rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void localiser(String identifiantPiece)  
    {  System.out.println("j'y suis");
       if((StartUpSwing.collection.containsKey("124ad")) == true) //"124ad"existe bien dans la hashtable(je l'ai verifié car je serialise et deserialize la Hashtable au lancement de l'application 
     {   System.out.println("c bon") ; }
    il m'affiche j'y suis mais pas "c bon" il arrive pas a rentrer car il ne retrouve pas la clé.
    pourtant elle est bien crée car qd je désérialze mon ficher il retrouve bien mon objet.

    à l'aiiidde

  4. #4
    Membre confirmé Avatar de alexorcet
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Par défaut
    allé les amis je suis bloqué faites un petit effort

  5. #5
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    CyberChouan t'a dit qu'il vallait mieux faire un recherche sur la clé que sur la valeur donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       if((StartUpSwing.collection.containsKey("124ad")) )

  6. #6
    Membre confirmé Avatar de alexorcet
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Par défaut
    c'est ce que je fais mais je ne retrouve rien

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

Discussions similaires

  1. manipulation d'une liste chainé
    Par sorari dans le forum C++
    Réponses: 1
    Dernier message: 16/03/2005, 12h32
  2. [HashMap] Modification d'objet d'une Hashtable
    Par viena dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 29/07/2004, 09h04
  3. [JSP][STRUTS]Cle d'une hashtable
    Par julienOriano dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/06/2004, 13h47
  4. [XSLT] Manipulation d'une String
    Par Eskarina43 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/06/2004, 11h52

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