Problème de remplissage de liste [Résolu]

Signaler
Messages postés
29
Date d'inscription
lundi 20 février 2017
Statut
Membre
Dernière intervention
13 janvier 2021
-
Messages postés
15391
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 janvier 2021
-
Bonsoir et bonne année,

Je rencontre un problème avec le remplissage d'une liste.
j'essaye de remplir un liste mais celle-ci ne se rempli que avec les mêmes valeur alors que je change pourtant a chaque tour de boucle for les valeurs de cette objet
voici mon code:
        BookCount bc = new BookCount();
        List<BookCount> bcList= new ArrayList<BookCount>();
        for(int i =0;i<bkLst.size();i++){
            bc.setBk(bkLst.get(i));
            bc.setNbr(countFile.get(i));
            System.out.println("book a ajouter: "+bc.getBk());
            bcList.add(bc);
        }
        
        System.out.println("*********************");
        for(int i =0;i<bcList.size();i++){
            System.out.println(bcList.get(i).getBk());
        }

et voici l'affichage:

3 réponses

Messages postés
15391
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 janvier 2021
642
Bonsoir

analysons ce que fait ton code.
Il crée un objet bc dont la portée est valable pour tout le code

Ensuite il modifie l'objet bc et l'ajoute à une liste.
Ensuite il modifie l'objet bc et l'ajoute à une liste.
Etc.

Donc à la fin la liste c'est
[bc, bc, bc, bc, bc, bc, bc, ...., bc]

Il t'affiche donc
bc
bc
bc
bc
bc
....
bc

Messages postés
29
Date d'inscription
lundi 20 février 2017
Statut
Membre
Dernière intervention
13 janvier 2021

ok donc si je crée l'objet à chaque tour de boucle cela devrait fonctionné
        List<BookCount> bcList= new ArrayList<BookCount>();
        for(int i =0;i<bkLst.size();i++){
            BookCount bc = new BookCount();
            bc.setBk(bkLst.get(i));
            bc.setNbr(countFile.get(i));
            System.out.println("book a ajouter: "+bc.getBk());
            bcList.add(bc);
        }


Merci, je passe en résolu
Messages postés
15391
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 janvier 2021
642
Exactement