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 :

Probleme interface iterator dans une ArrayList


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Probleme interface iterator dans une ArrayList
    Bonjour à tous,

    J'ai un probleme lorsque j'utilise l'interface iterator dans une Arraylist.

    J'ai crée une classe Personne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class Personne {
    	private String nom; 
    public Personne (string nom) {
    this.nom = nom;
    }
    public String getNom() {
     return nom;
    }

    Je voudrais créer un tableau ArrayList avec des objets Personne et lister ces objets
    Voici le code :

    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
    import java.util.*;
     
    public class PersonneTest {
    	public static void main(String[] args) {
     
    	ArrayList<Personne> listPersonne = new ArrayList<Personne>();
     
    	listPersonne.add(new Personne("Dupont"));
    	listPersonne.add(new Personne("Durand"));
     
    		for (Iterator i = listpersonne.iterator();i.hasNext();)
    		{
    		Personne personne = (Personne)i.next();
    		System.out.println(personne.getNom());
    		}
    	}
    Voici mon problème : lorsque j'execute la classe PersonneTest, la méthode System.out.println(personne.getNom()) renvoie des données à space au lieu d'afficher les noms "Durand" et "Dupont".

    Quelqu'un pourrait il m'aider ?

    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    il faut que tu surcharge la méthode toString de ta classe personne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public String toString() {
      return nom;
    }

  3. #3
    Membre actif

    Étudiant
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Points : 276
    Points
    276
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    il faut que tu surcharge la méthode toString de ta classe personne
    Pourquoi ?

    l'attribut nom est une String, il peut tout à fait utiliser son getter pour l'afficher dans un System.out.println !!!

    Sinon ton code semble bon ! (hormis les erreurs dans le code posté : fautes de frappes surement )

    Seul chose que tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (Iterator<Personne> i = listPersonne.iterator() ; i.hasNext() ; ) {

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Points : 446
    Points
    446
    Par défaut
    Ton code, aux fautes de frappes près fonctionne comme l'a déjà dit floflo_2006.

    Comme tu utilises les types paramétrés (générics) j'en conclu que tu es en Java 1.5 ou supérieur. Tu peux donc utiliser la boucle for étendues que je trouve plus pratique que les itérateurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (Personne personne : listPersonne) {
      System.out.println(personne.getNom());
    }
    Il est agréable d'avoir le choix. La difficulté est alors de faire le bon (ou le moins pire).

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    J'ai essayer cette méthode.
    Cela marche

    Merci de votre aide

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

Discussions similaires

  1. probleme avec le changement dans une ArrayList
    Par Hisoka_Hunter dans le forum C#
    Réponses: 1
    Dernier message: 15/02/2008, 17h56
  2. probleme de recordset dans une boucle do while
    Par Shoryu dans le forum ASP
    Réponses: 18
    Dernier message: 05/07/2004, 15h30
  3. Réponses: 2
    Dernier message: 24/06/2004, 09h13
  4. [LG]probleme d'ajout dans une liste chainée...
    Par misteryann dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2004, 20h28
  5. [BPW]Problème de recherche dans une boîte liste
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 05/07/2003, 15h10

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