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

Langage Java Discussion :

récupérer une valeur d'un HasMap


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Par défaut récupérer une valeur d'un HasMap
    Bonjour j'ai un petit problème pour récupérer une valeur d'un HasMap

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
       /**
         * Define an before from this room.
         */
    public void setBefore(Room neighbor, int type)
        {
        	typeImage.put(neighbor, type);
        }
     
      /**
         * Return the image that is corresponded
         */ 
    public String getImage(Room beforeRoom)
        {
        	String image = "";
        	int type;
     
        	Set keys = typeImage.keySet();
            for(Iterator iter = keys.iterator(); iter.hasNext(); )
            	if (iter.next() == beforeRoom)
            	{
            		type = /* je voudrai trouver le type */
            	}
     
        	 switch (type) {
             case 1:  image = img1;
             break;
             case 2:  image = img2;
             break;
        	 }
        	return image;
        }
    dans l'idée je veux savoir d'où l'utilisateur vient (beforeRoom) et suivant cela je veux afficher soit l'image 1 soit l'image 2, mais pour savoir ça il me faut trouver le type.

    A vrai dire je sais pas quelle méthode utilisé pour renvoyer un entier (si possible) ?

    Si vous avez des idées, voir des réponses, je suis preneur bien évidement

  2. #2
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    C'est la méthode Map.get que tu cherche ?

  3. #3
    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 sais que le principe de la map, c'est justement que tu n'as pas besoin de parcourir à la main toutes les clés ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public String getImage(Room beforeRoom)
        {
        	String image = "";
        	int type = typeImage.get(beforeRoom);
     
        	switch (type) {
             case 1:  image = img1;
             break;
             case 2:  image = img2;
             break;
        	}
        	return image;
        }
    Edit : à la relecture, il serait quand même plus propre de faire un test sur la nullité du retour de la map (qui devra être un Integer), ça t'évitera un NullPointerException déclenché par l'auto-outboxing.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Par défaut
    Merci pour vos réponses, et j'avais essayé la méthode get, mais il me renvoit l'erreur suivante : "this mismatch : can't convert from objet to int."

    Me voilà bien embêté ^^

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 106
    Par défaut
    Tu peux mettre l'erreur complete ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Par défaut
    Deux questions :
    - Est-ce que tu as mis des paramètres à ta map ? Du genre Map<Room, Integer>
    - Pourquoi ne pas mettre directement le type de l'image dans la map plutôt qu'un entier ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Par défaut
    voilà le screen de l'erreur


    @glebreton
    voilà comment je l'initialise :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    private HashMap typeImage;
    typeImage =new HashMap();
     
     public void setBefore(Room neighbor, int type)
        {
        	typeImage.put(neighbor, type);
        }
    Et en effet c'est pas bête du tout de mettre le lien de l'image à la place du type !! Mais le problème (pour moi) serait le même, c'est à dire récupérer cette valeur.

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

Discussions similaires

  1. [XSL]récupérer une valeur de plusieurs fichiers XML
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 05/02/2006, 00h32
  2. Réponses: 5
    Dernier message: 09/09/2005, 17h51
  3. problème pour récupérer une valeur dans ma bd (débutante)
    Par auryn111 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2005, 17h49
  4. Réponses: 2
    Dernier message: 17/06/2005, 13h38
  5. Réponses: 2
    Dernier message: 11/12/2004, 21h20

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