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 :

Modification HashMap


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 69
    Par défaut Modification HashMap
    Bonjour à tous,

    J'ai actuellement un probleme concernant un HashMap. Je m'explique.
    J'ai un objet possedant un hashMap "donnees" que je souhaite modifier. Pour cela je créer un Panel avec un Label et un Textfield pour chaque element présent dans mon hashmap. Et lorsque je ferme ce panel, sans appeler de méthodes particulières, mes données dans le HashMap ne devraient pas être modifiées
    J'affiche ensuite à nouveau les données dans le panels mais elles ont été modifié. Je ne comprends pas pourquoi mes données sont modifier alors que je n'ai pas appeler de méthodes.

    Je vous remercie d'avance.

    [EDIT] un petit bout de code tout de meme
    Juste avec panelTempo.Donnees(), mes donnees sont modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    panelTempo.Donnees();
    //elementTempo.Modifier(panelTempo.getDonnees());

    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
    public void Donnees() 
    	{
    		int j = 1;
    		nbGenerique = 3;
    		for (int i = 0; i < listTextField.size(); i++)
    		{
    			if (i < nbGenerique)
    			{
    				if (listTextField.get(entete[i]).getText().isEmpty()) 
    				{
    					newDonnees.put(entete[i], "1");
    				} 
    				else
    				{
    					newDonnees.put(entete[i], listTextField.get(entete[i]).getText());
    				}
    			}
    			else 
    			{
    				if (listTextField.get(j).getText().isEmpty()) 
    				{
    					newDonnees.put(j, "1");
    					j++;
    				} 
    				else
    				{
    					newDonnees.put(j, listTextField.get(j).getText());
    					j++;
    				}
    			}
    		}
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void Modifier(HashMap<Object, String> donnees)
    	{
    		System.out.println("Avant modification : " + getDonnees());
    		setDonnees(donnees);
    		System.out.println("Après modification : " + getDonnees());
    	}

  2. #2
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 13
    Par défaut
    Bonjour,

    en ajoutant les objets de la Map dans un List, les 2 structures pointent sur les mêmes objets (dans le heap), donc la modification d'un objet à partir de la liste est une modification sur l'objet lui même (donc sur le map).
    Il faut être sûr que les objets de ton Map ne sont pas utilisés par une autre structure.

  3. #3
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 69
    Par défaut
    Salut,

    Merci pour la précision, donc si j'ai bien compris, une chaine de caractères dans le map qui est utilisé pour remplir un Textfield sera modifié si ce Textfield est lui même modifié?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Non. En fait je ne comprends pas pourquoi cette Map devrait ne pas être modifiée.

    Il y a des put() partout, ça sert à modifier la Map et pas à autre chose.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 69
    Par défaut
    Bonjour,

    Oui elle devrait être modifier si j'utilise le mutateur. Les put() agissent sur une map temporelle qui sera récupérer par l'accesseur. Hors la je n'utilise pas le mutateur et mes données sont modifier (comme si les 2 maps étaient synchronisé).

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    On comprend rien à tes explications et le code ne montre rien de tout ça.
    Il va falloir faire un effort de clarté.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Destruction objet Java + modification HashMap
    Par Vespiras dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 25/09/2013, 08h12
  2. modification fichier avec hashmap
    Par icicmoi dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 11/04/2007, 19h50
  3. [HashMap] Modification d'objet d'une Hashtable
    Par viena dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 29/07/2004, 09h04
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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