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 :

Initialisation variavle via ArrayList


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 95
    Points
    95
    Par défaut Initialisation variavle via ArrayList
    Bonjour à tous,
    J'ai un petit prob que j'arrive pas à regler.
    J'ai une Classe X avec disons une seule variable "nom".
    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
     
    public class X
    {
        private String nom;
     
        public String getNom()
        {
             return nom;
        }
        public void setNom (String nom)
        {
             this.nom = nom;
        }
    // puis je mets 3 instance de cette objet dans une ArrayList
       public ArrayList getList()
       {
           ArrayList al = new ArrayList();
           for (int i = 0 ; i <3 ; i++)
              al.add(this);
       }
    }

    Dans une autre classe disons Y, je fait une requete dans la base qui me retourne 3 noms différents, par exemple "toto", "titi" et "tata". Je voudrais que la variable "nom" de chaque instance de la classe X prenne une valeur différente. pour cela je fais comme suit:
    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
     
    public class Y
    {
       public void afficherList(ArrayList list)
       {
            //Ici, requete dans la base qui me retourne 3 valeurs differentes
            for(int i = 0; i<list.size(); i++)
            {
                 Object o = list.get(i);
                 if (o instanceof X) //car après je vais mettre d'autres objets dans cette liste
    	     {
    		 oX = (X)o;
                     while (rs.next()
                     {
                         oX.setNom(rs.getString(...));
                     }
                 }
            }   
       }
    }
    et j'ai toujours un seul nom qui est attribué 3 fois à la variable "nom". ça ne marche pas. ce que j'essaie d'obtenir, c'est que la variable de la 1e instance soit "toto", de la 2e instance "titi" et la 3e "tata".
    Pourriez-vous m'aider SVP?
    Je vous remercie d'avance

  2. #2
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    tu ajoutes à chaque fois le même objet. Donc si tu changes le nom du premier, ça se répercute...

    Pour avoir 3 objets qui ont des noms différents, il faut faire 3 new.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 95
    Points
    95
    Par défaut
    merci hasalex pour ta réponse. En fait, j'ai réussi à regler le prob. J'ai juste déplacé l'instruction while (rs.next() avant la boucle for et ça a marché.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //Ici, requete dans la base qui me retourne 3 valeurs differentes
    while (rs.next()
    {
         for(int i = 0; i<list.size(); i++)
         {
                 Object o = list.get(i);
                 if (o instanceof X) //car après je vais mettre d'autres objets dans cette liste
    	     {
    		 oX = (X)o;
                     oX.setNom(rs.getString(...));
                 }
           }
     }
    je vais mettre le sujet comme résolu mais si vous avez d'autres idées ou vous pensez que c'est pas la bonne manière de procéder je suis preneur.

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

Discussions similaires

  1. initialisation structure via pointeur
    Par Pukram dans le forum Débuter
    Réponses: 1
    Dernier message: 12/03/2012, 14h10
  2. Recuperer un objet via ArrayList avec Position connu
    Par maxf1 dans le forum Struts 1
    Réponses: 2
    Dernier message: 15/01/2007, 16h51
  3. initialisation d'un arraylist
    Par david06600 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 10/10/2006, 21h41
  4. Réponses: 8
    Dernier message: 07/06/2006, 16h47
  5. [Débutant] Initialiser zone de texte via un tableau
    Par Theseus dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 27/01/2005, 10h19

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