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

avec Java Discussion :

Référence sur un élèment d'un itérateur


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Référence sur un élèment d'un itérateur
    Bonjour,

    J'ai une liste sur un ensemble d'éléments de type QualificationIngenieur. Pour parcourir cette liste j'utilise un itérateur. (Bon jusque là rien de très compliqué) Mais pour pouvoir manipuler ces éléments (effectuer des modifications sur quelques attributs) je mets une référence sur lui. Mais après lors de la vérification je me rends compte que rien n'a changé.

    Voilà la portion de code responsable du traitement:

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    				while (itmesQualif.hasNext()) {
     
    					int itmp = 1;
     
    					QualificationIngenieur maqualif = (QualificationIngenieur) itmesQualif
    							.next(); // la qualification courante de
    					// l'ingénieur courant
    					System.out.println("to string maqualif " + maqualif.toString());
     
    					System.out.println("la qualification de l'ingenieur est "
    							+ maqualif.get_libelle());
     
    					while (itQualif.hasNext() && ((itmp % 2) != 0)) {
     
    						itmp = (int) (1 / Math.random());
     
    						System.out
    								.println("les qualifications du référentiel sont : ");
     
    						ResultatDeTouteslesqualifications rql = (ResultatDeTouteslesqualifications) itQualif
    								.next();
     
    						QualificationIngenieur qualifing = rql
    								.get_qualificationIngenieur(); // qualification
    						// en
    						// cours
     
    						System.out
    								.println("la qualifciation du référentiel est "
    										+ qualifing.get_libelle());
     
    						if (qualifing.get_code() != null) {
    							maqualif.set_code(qualifing.get_code());
     
    						}
     
    						if (qualifing.get_coutJournalierMoyen() != null) {
    							maqualif.set_coutJournalierMoyen(qualifing
    									.get_coutJournalierMoyen());
     
    						}
     
    						if (qualifing.get_date() != null) {
    							maqualif.set_date(qualifing.get_date());
     
    						}
     
    						if (qualifing.get_date2() != null) {
    							maqualif.set_date2(qualifing.get_date2());
     
    						}
     
    						if (qualifing.get_libelle() != null) {
    							maqualif.set_libelle(qualifing.get_libelle());
     
    						} else {
    							System.out.println("c'est pas ça!");
    						}
     
    						if (qualifing.get_tauxJournalierMoyen() != null) {
    							maqualif.set_tauxJournalierMoyen(qualifing
    									.get_tauxJournalierMoyen());
     
    						}
     
    					}
     
    					System.out.println("maqualif est : "
    							+ maqualif.get_libelle());
     
    				}
    En fait ce code ne fait que parcourir la liste des qualifications d'un ingénieur et à chaque fois il choisit aléatoirement dans une liste de qualifications et affecte la valeur.

    Le problème c'est que si je parcours les qualifications du salarié une autre fois je trouve que rien n'a changé et qu'elles ne correspondent pas au résultat de la référence maqualif.

    Merci d'avance.

  2. #2
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    je ne vois pas dans on code comment tu obtiens tes iterateurs...
    sans chercher à comprendre le code je vois qu'il y a un itérateur utilisé en boucle dans un autre: ça veut dire que pour le premier élément de l'itération englobante (itmesqualif) tu épuises toutes les possibilités de l'iterateur interne (itqualif) et donc dès le second élément la boucle interne ne "tourne" plus!
    non?
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci professeur shadoko! Mais mon problème ce n'est pas lors du parcours de l'itérateur itQualif ou itmesQualif (d'ailleurs pour essayer j'ai appliqué votre recommandation). Lors de l'affichage des valeur contenues dans maqualif je vois bien que le contenu de maqualif a été changé. Mais après quand je refais mon parcours et vérifie ça dans ma collection, il n'y a aucun changement.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    il viennent d'ou ces itérateurs? Si c'est un requete db, forcément, quand tu "reparcoure" (nouvelle requete à la db) tu recoi de nouveau ce qui proviens de la db, donc les valeurs initiales.

Discussions similaires

  1. [JAXB] Annotation permettant d'avoir une référence sur un élément
    Par kase74 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 28/10/2010, 19h15
  2. Réponses: 4
    Dernier message: 01/12/2009, 15h11
  3. [VB6] COMBO: se positionner sur un élément
    Par taurus dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 18/10/2005, 12h26
  4. Sort sur un élément distinct
    Par Martin lalande dans le forum Langage
    Réponses: 1
    Dernier message: 19/09/2005, 20h05
  5. Comment avoir une référence sur une Vue
    Par Philippe299 dans le forum MFC
    Réponses: 1
    Dernier message: 12/08/2005, 11h03

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