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 :

Problème avec affichage contenu d'un tableau


Sujet :

Collection et Stream Java

  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Points : 159
    Points
    159
    Par défaut Problème avec affichage contenu d'un tableau
    Bonjour,

    Je voulais afficher le contenu de mon tableau,

    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(int i=0;i<lesclients.size();i++){
    Client ccourant=(Client)lesclients.get(i);
    System.out.println (ccourant.numClt+"\t\t"+ccourant.prenomClt+"\t\t"+ccourant.nomClt+"\t\t"+ccourant.adresseClt);			}
    Client est une class
    lesclients est un ArrayList de Client.

    Le résultat me donne toujours le dernier élément du tableau et cela au tant de fois que d'éléments dans le tableau.

    Au secours S'il vous plait.

  2. #2
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Client est une class
    lesclients est un ArrayList de Client.

    Le résultat me donne toujours le dernier élément du tableau et cela au tant de fois que d'éléments dans le tableau.
    Donc si j'ai bien compris si tu as 10 elements et que tu parcours ton ArraList

    tu va afficher 10 fois ton dernier client.

    Je pencherais plus pour un problème d'algo lors du remplissage de ton arraLyst
    ou tu récuperais les données a chaque vois de chaque clients mais que tu enregistrerais toujours le même.

    peux tu montrer le code utiliser pour son remplissage

  3. #3
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Points : 159
    Points
    159
    Par défaut
    Voici le code de remplissage.
    [CODE]
    if (sortie.equals("1")) {
    unclient.numClt="debut";int i=0;
    while(!unclient.numClt.equals(" ")){
    unclient.creer();
    if(unclient.numClt.equals(" ")) break;
    else {lesclients.add(i, unclient);i++;}
    }
    }

    merci.

  4. #4
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    Tu ne crée qu'une instance de client (unclient) puis tu change les valeurs et tu l'ajoute dans la liste => tu as donc dans la liste n fois le même objet avec les dernières modifications

    dans ta boucle de remplissage commence par faire Client unClient = new Client();

  5. #5
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    ou alors (je viens de voir le unClient.creer() si cette méthode renvoie un bjet de type Client il faut remplacer la référence de unClient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unclient = unclient.creer()

  6. #6
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    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
    if (sortie.equals("1"))
    {
    	unclient.numClt="debut";
    	int i=0;
    	while(!unclient.numClt.equals(" "))
    	{
    		unclient.creer();
    		if(unclient.numClt.equals(" "))
    			break;
    		else
    		{
    			lesclients.add(i, unclient);
    			i++;
    		}
    	}
    }


    j'ai du mal à saisir ce que tu fais avec ce bout de code.
    Pourrais tu donner plus d'explication car tu rentre toujours dans ta boucle While.
    nous dire ce que tu aimerais que cette portion de code réalise ainsi que le code de ta classe client

  7. #7
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Points : 159
    Points
    159
    Par défaut
    Le code permet de lire un client et de le placer dans le tableau lesclients
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (sortie.equals("1")) {
        unclient.numClt="debut";int i=0;
        while(!unclient.numClt.equals(" ")){
             unclient.creer(); // lire un client au clavier
             if(unclient.numClt.equals(" ")) break;
            else {
                     // placer le client lu au clavier dans le tableau lesclients
                       lesclients.add(i, unclient);i++;
             }
       }
    }
    Le code de la classe Client est le suivant :
    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
     
    import java.io.*;
     
    public class Client {
    	//données membres
    	String numClt;
    	String nomClt;
    	String prenomClt;
    	String adresseClt;
    	public Client(){}
    	// fonctions membres
    	void creer(){
    		BufferedReader IN=null;
    		try {
    			IN=new BufferedReader(new InputStreamReader(System.in));
    		} catch(Exception e){
    			System.err.println("Erreur : "+e);
    			System.exit(1);
    		}
    		try {
    			System.out.print("Numero  : ");this.numClt=IN.readLine();
    			System.out.print("Nom     : ");this.nomClt=IN.readLine();
    			System.out.print("Prenom  : ");this.prenomClt=IN.readLine();
    			System.out.print("Adresse : ");this.adresseClt=IN.readLine();
    		} catch (IOException e) {
    			// TODO Bloc catch auto-généré
    			e.printStackTrace();
    		}
    	}
    	void modifieradr(String adr){this.adresseClt =adr;}
    	void afficher(){
    		System.out.println("AFFICHE D'UN CLIENT");
    		System.out.println("Numero  : "+this.numClt);
    		System.out.println("Nom     : "+this.nomClt);
    		System.out.println("Prenom  : "+this.prenomClt);
    		System.out.println("Adresse : "+this.adresseClt);
    	}
    	void supprimer(){}
    }

  8. #8
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    Il faut donc dans la boucle qui fait "lesclients.add(i, unclient);"
    (bien que "lesclients.add(unclient);" aura suffit) commencer par instancier un nouvel objet client.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Client unClient = new Client();

  9. #9
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Points : 159
    Points
    159
    Par défaut
    Cela existe déjà en debut du code. Voici les lignes de définition des variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String sortie="";
    Client unclient=new Client();
    List<Client> lesclients=new ArrayList<Client>();

  10. #10
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Oui mais comme fnobb te le dit il faut faire la déclaration dans la boucle

    en dehors de celle-ci tu met Et dans ta boucle for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unClient = new Client();
    Si tu ne fais pas ca tu travail toujour sur le même objet client1 que tu modifies et que tu insert n fois dans ton tableau.

    tu veux cree client1 tu appelles ta méthode creer pour renseigner les infos le concernant.
    puis même chose pour le client 2 ect ...

    la tu demande en boucle à ton client1 de redonner ces informations.

  11. #11
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    il faut faire quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String sortie="";
    Client unclient;
    List<Client> lesclients=new ArrayList<Client>();
    .....
    for(int i =0; i<......
    {
    	unclient = new Client();
    	......
    	lesclients.add(unclient);
    	......

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

Discussions similaires

  1. Problème avec affichage de tableau
    Par hedibox dans le forum JSF
    Réponses: 1
    Dernier message: 30/08/2013, 12h03
  2. problème avec affichage d'un tableau
    Par bandit_debutant dans le forum Collection et Stream
    Réponses: 15
    Dernier message: 29/05/2008, 16h15
  3. Réponses: 3
    Dernier message: 10/01/2006, 14h01
  4. Problème avec affichage d'une table modifiée
    Par auriolbeach dans le forum Access
    Réponses: 6
    Dernier message: 31/10/2005, 15h45
  5. [Débutant] Problème avec le contenu d'un fichier
    Par kennie77 dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 15/10/2005, 21h48

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