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 :

adresse memoire attribut


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 52
    Points
    52
    Par défaut adresse memoire attribut
    Bonjour,

    J'ai un petit problème dans mon programme java.
    En fait j'ai une boucle qui remplie une HashMap.
    Cette HashMap est rempli avec une list que je modifie, seulement j'ai l'impression que je copie l'adresse de l'attribut dans la liste car quand âpres avoir fini ma boucle je veux afficher ma liste, la valeur est la même partout.

    existe-il un méthode pour copier l'adresse mémoire en java?

    PS: voici mon code:

    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
     
    ArrayList<String>		tmp 	= new ArrayList<String>();
    HashMap<String, ArrayList<String>>	tmpMap	= new HashMap<String, ArrayList<String>>()
    String		name;
     
    Iterator	itcat	= listCat.iterator();
    Integer      i = 0;
     
    while (itcat.hasNext()) {
            name = itcat.next();
     
            if (i == 0)
    	    tmp.add("un");
    	if (i == 1)
    	    tmp.add("deux");
    	if (i == 2)
    	    tmp.add("trois");
     
     
     
    	tmpMap.put(name, tmp);
            i++;
    }
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Tu réutilises toujours la même instance de ta liste (tmp), donc la même instance est modifiée à chaque passage, donc la référence que tu sauves dans ta Map est la même partout, donc ton résultat est cohérent
    Il te faut réinstancier tmp à chaque passage dans la boucvle si tu veux des listes différentes

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 52
    Points
    52
    Par défaut
    ok c'était bien ça, j'ai réinitialisé ma liste a chaque tours de boucle comme tu me l'a conseillé et ça marche.
    C'était tout con.

    merci a toi.

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

Discussions similaires

  1. hashCode() et l'adresse memoire
    Par aelmalki dans le forum Général Java
    Réponses: 3
    Dernier message: 17/04/2012, 09h20
  2. Adresse memoire de structure
    Par andrebernard dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 16/09/2010, 09h29
  3. Consulter adresse memoire
    Par Statoonus dans le forum C#
    Réponses: 1
    Dernier message: 17/04/2008, 18h53
  4. Adresse memoire d'une fonction
    Par Hitchigo dans le forum Delphi
    Réponses: 5
    Dernier message: 30/07/2006, 12h37
  5. l'adresse memoire d'un dll ?
    Par ilimo dans le forum Windows
    Réponses: 12
    Dernier message: 08/04/2006, 22h24

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