Problème Boucle remplissage d'arraylist !!!! [Résolu]

sa9rtounsi 15 Messages postés mardi 8 décembre 2009Date d'inscription 29 mars 2013 Dernière intervention - 29 mars 2013 à 13:19 - Dernière réponse : sa9rtounsi 15 Messages postés mardi 8 décembre 2009Date d'inscription 29 mars 2013 Dernière intervention
- 29 mars 2013 à 19:25
Bonjour,
Je suis débutent en Java. J'ai un problème d'affichage d'une arraylist d'objets.
Je voudrais d'afficher le contenu d'un arraylist d'objets mais j'affiche toujours le même objet (le dernier).
Par exemple, si j'ajoute 3 objets différents, il m'affiche 3 fois le dernier ajouté. Pourquoi ?

code :
import java.util.ArrayList;

import com.ITExpertsConsulting.SDExpert.Persistance.Type;

public class Test {

public static void main(String []args){
ArrayList<Type> types=new ArrayList<Type>();
int i =0;

while(i<3){

Type type=Type.getInstence();
type.setIDType(i);
type.setLibellé_Type("type "+i);

types.add(type);
i++;
for(int j=0;j<types.size();j++)
{
System.out.println(types.get(j).getLibellé_Type());
}
}
}
}


Res :

type 0
type 1
type 1
type 2
type 2
type 2

Or la resultat attendue est :

type 0
type 0
type 1
type 0
type 1
type 2

Je trouve pas la solution , j'attend votre aide SVPL :-( ...
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_jojolemariole 519 Messages postés mercredi 21 mars 2007Date d'inscription 19 décembre 2016 Dernière intervention - 29 mars 2013 à 16:23
3
Merci
Re,

Donc c'est bien ce que je te disais. Tu as 3 fois le même objet dans ta liste. Donc quand tu modifies le n-ième élément de ta liste, tu les modifies tous en même temps. Le résultat est donc normal. Si tu veux 3 objets différents, il ne faut évidemment pas utiliser de singleton.

Merci cs_jojolemariole 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_jojolemariole
cs_jojolemariole 519 Messages postés mercredi 21 mars 2007Date d'inscription 19 décembre 2016 Dernière intervention - 29 mars 2013 à 13:37
0
Merci
Salut,

Le code que tu nous montres est bon, mais je présume que ton "getInstence()" te renvoie toujours la même instance. Ce qui fait que tu as 3x le même objet dans ta liste.

Montre-nous le getInstence() pour plus d'aide.
Commenter la réponse de cs_jojolemariole
sa9rtounsi 15 Messages postés mardi 8 décembre 2009Date d'inscription 29 mars 2013 Dernière intervention - 29 mars 2013 à 15:40
0
Merci
GetInstence() c'est le singloton :

private Type(){}


private static Type instence;
public static Type getInstence() {
if(instence==null)
instence=new Type();
return instence;
}


voila ...
Commenter la réponse de sa9rtounsi
sa9rtounsi 15 Messages postés mardi 8 décembre 2009Date d'inscription 29 mars 2013 Dernière intervention - 29 mars 2013 à 19:25
0
Merci
ok merci jojolemariole , c'est exactement le problem , merci de nouveaux :)
Commenter la réponse de sa9rtounsi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.