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

Java Discussion :

Reboucler un objet


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut Reboucler un objet
    Bonjour tout le monde,

    J'ai un tableau contenant des prénoms d'un fichier A et j'ai un objet ou je récupère aussi des prénoms d'un fichier B.

    Je fait ceci:
    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
     
    int e=0;
    		    	for (Agent agt : listAgent){
    		    		//System.out.println(e);
    		    		if(agt.getAgent()!=null && agt.getNum_ligne_agent()!=0){
    		    			System.out.println(tab[0][e]+" = "+agt.getAgent());
    		    			System.out.println("");
    		    			if(tab[0][e].equals(agt.getAgent())){//si le prénom du 1er fichier = prénom du 2ème fichier
    		    				//écrire le nombre d'heures dans la colonne de la semaine qu'il a effectué
    		    				row2 = sheet2.getRow(agt.getNum_ligne_agent());//on l'écrit à la ligne de l'agent ds le fichier 'Quimper2..'
    		    				System.out.println("sisi");
    		    				if(tabsemainefichier1[1][e]==1){// si la semaine de l'agent en cours trouvée est = 1
    		    					cell2 = row2.createCell(2);//on l'écrit à la colonne 2 (semaine 51)
    		    					cell2.setCellValue(tabheures[1][e]/24.0);
    		    					cellStyle = wb2.createCellStyle();
    		    					cellStyle.setDataFormat(fmt.getFormat("hh:MM"));
    		    					cell2.setCellStyle(cellStyle);
    		    					System.out.println("on écrit l'heure trouvée "+tabheures[1][e]);
    		    					System.out.println("agent: "+agt.getAgent()+" à la ligne: "+agt.getNum_ligne_agent());
    				    			e++;
    		    				}
    		    			}
    		    		}
    		    	}
    Mais j'ai comme résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CAMILLE = CAMILLE
    
    sisi
    on écrit l'heure trouvée 10.5
    agent: CAMILLE à la ligne: 2
    MURIELLE = YOHANN
    MURIELLE = MURIELLE
    
    sisi
    on écrit l'heure trouvée 2.5
    agent: MURIELLE à la ligne: 8
    YOHANN = OPHELIE
    ISABELLE = LAURA
    En rouge, on voit qu'une égalité à été omise.
    YOHANN = YOHANN


    En effet, je ne sais pas comment faire dire à l'objet de se remettre à zéro.

    Quelqu'un à une idée ?
    Par avance Merci.

  2. #2
    Membre confirmé Avatar de coshibe
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 183
    Par défaut
    Dis moi si je me trompe, mais j'ai l'impression que tu veux parcourir 2 tableauxx et récupérer toutes les lignes qui ont le meme prenom?

    Si c'est le cas il te faut faire un double parcours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for(int i = 0; i<maListe1.length(); i++)
    {
       for(int j = 0; j<maListe2.length(); j++)
       {
       if(maListe1.get(i).equals(maListe2.get(i))
     
       }
    }

  3. #3
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Non.
    C'est comparé les valeurs d'un tableaux par rapport a un objet.

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int e=0;
    boucle de parcours de l'objet (=for (Agent agt : listAgent){)
    //si le prénom du tableau est égale au prénom dan l'objet
    if(tab[0][e].equals(agt.getAgent())){
    afficher le prénom
    réinitialiser l'objet au départ de la boucle
    }
    e++;//prendre le prochain prénom du tableau
    }

  4. #4
    Membre confirmé Avatar de coshibe
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 183
    Par défaut
    Je comprends pas.

    tu peux me donner un exemple concret avec 2 listes simples?

  5. #5
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    la méthode .get() n'existe pas pour un tableau.

  6. #6
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par mouss4rs Voir le message
    la méthode .get() n'existe pas pour un tableau.
    Oui m'enfin entre un tableau avec tab[i] et un get(i) pour une liste, l'équivalence se fait rapidement.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  7. #7
    Membre actif Avatar de dotEden
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 66
    Par défaut
    Bonsoir,

    Je ne comprend pas non plus, si tu réinitialises à chaque fois ta boucle, c'est relancé à l'infini non ?

    Cordialement

  8. #8
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Voilà ce que je fais:
    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
     
    for (int y=0; y<tabPrenomP.length; y++){
    		    		for(int z = 0; z<tabPrenomQ.length; z++){
     
    		    		if(tabPrenomP[0][y]!=null && tabPrenomQ[0][z]!=null){
    		    			System.out.println(tabPrenomP[0][y]+" = "+tabPrenomQ[0][z]);
    		    			System.out.println("");
    		    			if(tabPrenomP[0][y].equals(tabPrenomQ[0][y])){//si le prénom du 1er fichier = prénom du 2ème fichier
    		    				//écrire le nombre d'heures dans la colonne de la semaine qu'il a effectué
    		    				row2 = sheet2.getRow(Integer.parseInt(tabPrenomQ[1][z]));//on l'écrit à la ligne de l'agent ds le fichier 'Quimper2..'
    		    				System.out.println("sisi");
    		    				if(tabsemainefichier1[1][y]==1){// si la semaine de l'agent en cours trouvée est = 1
    		    					cell2 = row2.createCell(2);//on l'écrit à la colonne 2 (semaine 51)
    		    					cell2.setCellValue(tabheures[1][y]/24.0);
    		    					cellStyle = wb2.createCellStyle();
    		    					cellStyle.setDataFormat(fmt.getFormat("hh:MM"));
    		    					cell2.setCellStyle(cellStyle);
    		    					System.out.println("on écrit l'heure trouvée "+tabheures[1][y]);
    		    					System.out.println("agent: "+tabPrenomQ[0][z]+" à la ligne: "+Integer.parseInt(tabPrenomQ[1][z]));
     
     
    		    				}
     
    		    			}
    		    		}
    		    		}
    		    	}
    Sachant que tabPrenomP[0][y] contient:
    MURIELLE, YOHANN, ISABELLE, LAURA
    et que tabPrenomQ[0][z] contient:
    YOHANN, MURIELLE, LAURA, ISABELLE

    Je désire parcourir Ces 2 tableaux pour retrouver les prénoms.
    A chaque fois que je trouve un prénom, j'incrémente tabPrenomP de 1 et je boucle jusqu'a la fin avec tabPrenomQ puis si on trouve rien, on incremente tabPrenomP de 1.
    Et ainsi de suite... pour chaque prenom de tabPrenomP

Discussions similaires

  1. codage objet
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 22/08/2002, 16h49
  2. algo : rotation d'objet 3d
    Par numeror dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 19/08/2002, 22h58
  3. Importer des objets de 3dsMax
    Par Anonymous dans le forum OpenGL
    Réponses: 3
    Dernier message: 06/05/2002, 13h53
  4. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

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