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 :

[HashMap] Modification d'objet d'une Hashtable


Sujet :

Collection et Stream Java

  1. #1
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut [HashMap] Modification d'objet d'une Hashtable
    Voila, tout est dit dans le sujet :
    J'ai une liste d'objets en Hashtable et je doit modifier de facon systématique un champs (si champs=a, alors le remplacer par "String", si =b...). Ce champs se trouve egalement dans une liste (ArrayList)
    Hashtable contenant des "Objet"
    Objet contenant une ArrayList d'Attributs
    Attributs contenant un champs Type à modifier.
    Le probleme c'est que je parcours mes listes avec des boucles imbriquées, je recupere mon objet, je le modifie, mais cette modification n'est pas répercutée dans l'objet stocké dans mon Hashtable...
    Si je rajoute l'objet, il n'ecrasse pas l'autre... c'est un peu le bins...
    Quelqu'un aurait une solution pour ce type de probleme...?
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  2. #2
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    Peut tu nous montrer le code de tes boucles imbriquées ou un exemple un peu plus précis de l'imbriquement des Objets dans ton HashTable et tes ArrayList, afin de pouvoir mieux t'aider ?

  3. #3
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    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
    for (Iterator it = listeObjets.values().iterator(); it.hasNext();) {
                    Objet obj = (Objet) it.next();
    	for(Iterator it2= (obj.getLesAttributs()).iterator();it2.hasNext();)
                    {
    		Attribut att=(Attribut)it2.next();
    		String type=(String) lesTypes.get(att.getType());
    		att.setType(type);
    	}
    	for(Iterator it2=(obj.getLesMethodes()).iterator();it2.hasNext();) 
                   {
    		Methode meth=(Methode)it2.next();
    		String ret=(String)lesTypes.get(meth.getRetour());
    		meth.setRetour(ret);
     
    		for(Iterator it3=(meth.getLesParametres()).iterator();it3.hasNext();){
    			Attribut att=(Attribut)it3.next();
    			String type=(String)lesTypes.get(att.getType());
    			att.setType(type);
    		}
    	}
    }
    Voila mon code, qui ne sert a rien, car meme s'il modifie effectivement mon attribut, a la sortie de ma boucle, rien n'est gardé.
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  4. #4
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Personne n'a une astuce?
    Pourtant j'étais sur que ca devait pas etre bien compliqué et que c'était juste parce que je m'y étais comme un manche
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  5. #5
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    Le code que tu nous propose me semble correct et aprés test chez moi, cela fonctionne ...

    Es tu sur que ton aplication passe par ce bout de code ? es tu sur que les listes ne sont pas vides ?

    Seulement les changements liées aux objects Attribut ne fonctionne pas, ou aussi celle des objects Methode ?

    Peut tu mettre une trace dans les méthodes setType() et setRetour() pour voir si on rentre bien dedans et quel est le paramétre qu'on reçoit, enfin vérifier si l'affectation se passe bien , (affichage avant/aprés) ?

  6. #6
    Membre actif Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Points : 263
    Points
    263
    Par défaut
    J'ai testé aussi et pas de problemes mais j'ai simulé les setter

    Peut tu nous montrer tes setters a toi ... parce que en fonction des instructions que tu fais dans tes setters tu ne travaille pas sur les elements contenus dans ta Hashtable, avec l'Iterator tu ne travailles pas par reference ...
    Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
    [article 1er Declaration Universelle des Droits de l'Homme]
    www.baseball-grizzlys.com

  7. #7
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    j'ai trouvé le probleme.
    en fait, je construis mes objets par appel de methodes successives et donc, j'ai du declaré mes objets localement et qui fait qu'il n'y a qu'une instance d'objet. donc j'ai resolu le probleme en recréant un nouvel objet au moment de l'inserer dans la liste voulue et en transferant les info de mon objet construit dans le nouveau.
    En tout cas, merci de votre aide!
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

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

Discussions similaires

  1. Modification d'un objet dans une map
    Par Flaburgan dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 06/11/2010, 10h36
  2. Récupération d'un objet d'une hashtable
    Par yazman dans le forum C#
    Réponses: 2
    Dernier message: 03/05/2007, 16h13
  3. Remplacer une Hashtable par une HashMap
    Par scolyo dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 19/06/2006, 17h30
  4. [VB6]Passage par référence d'une prop. d'objet à une fct
    Par -gYs- dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 02/09/2002, 08h55

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