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

Langage Java Discussion :

Problème d'Iterator


Sujet :

Langage Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut Problème d'Iterator
    Salut,

    Désolée si je n'ai pas posté au bon endroit mais je ne savais pas où poster.

    Je ne comprend pas pourquoi mon programme ne marche pas, alors qu'il compile. L'erreur vient de la methode getInstances: elle renvoit "null" a chaque fois

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    public class Stade {
     
     
     
    	public static void main(String[] args) {
     
    		int a;
    		do{
    			System.out.println("1. créer un ballon\n2. détruire un ballon\n3. afficher la liste des ballons\n0. quitter\nQuel est votre choix?");
    			a = Keyboard.getInt();
     
    			System.out.println("choix"+" "+a);
    			if(a==1){
    			Ballon.creer_instance();
    			}
    			else if(a==3){
    			Ballon.aff();
    			}
    			else if(a==2){
    				System.out.println(Ballon.getInstance("paulo"));
     
    			}
    		}
    		while(a!=0);
     
     
    	}
    }
     
    ==========================================
     
    import java.util.Iterator;
    import java.util.Vector;
     
    public class Ballon {
     
    	public String identificateur; 
    	public int taille;
    	public static Vector mesInstances = new Vector() ;
     
     
     
    	public Ballon(String s, int t){
    		this.identificateur=s;
    		this.taille=t;
    	}
     
    	public String toString() {		
    		return (this.identificateur +" "+this.taille );		
    	} 
     
    	public static Ballon creer_instance(){
    		System.out.println("Tapez un identificateur :");
    		String s = Keyboard.getString();
    		System.out.println("Tapez une taille  :");
    		int t = Keyboard.getInt();
    		Ballon b = new Ballon(s, t);
    		System.out.println("Ballon b cree." + b);
    		mesInstances.addElement(b);
     
    		//Keyboard.pause();
    		return b;
    	}
     
    	public static void aff(){
    		System.out.println(mesInstances);
    	}
     
    	public void detruire(){
     
    	}
     
     
    /*fonction qui retourne l’instance de la classe
    Ballon possédant un identificateur égal à la String passée en paramètre. Elle est
    appelée à chaque fois que l’on cherche une instance connaissant son identificateur. Elle
    retourne null si aucune instance ne correspond à la String passée en paramètre.*/
     
    	public static Ballon getInstance(String s){
    		Iterator it= mesInstances.iterator();
    		Object b = it.next();
     
    		do{
    			if(((Ballon)b).identificateur==s){
    	    		  return  (Ballon) b;
    	    	  }
     
    		}
     
    		 while (it.hasNext()) ;
    		 return null;
     
     
     
    	 }
    }

  2. #2
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Salut,

    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
    ==========================================
    
    import java.util.Iterator;
    import java.util.Vector;
    
    public class Ballon {
    	
    	public static Vector mesInstances = new Vector() ; 
            ...........
    	public static Ballon getInstance(String s){
    		Iterator it= mesInstances.iterator();
    		Object b = it.next();
    		
    		do{
    			if(((Ballon)b).identificateur==s){
    	    		  return  (Ballon) b;
    	    	  }
    	    	 
    		}
    		
    		 while (it.hasNext()) ;
    		 return null;
    		
    		
    	
    	 }
    }
    Un peu normal donc que ton Vector soit vide, tu ne le remplis pas.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Pourtant j'ai l'impression de le remplir quand j'utilise la méthode creer_instance:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static Ballon creer_instance(){
     
    .......
     
    mesInstances.addElement(b);
     
    }

  4. #4
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Oula j'avais pas bien regardé ton code, on va essayer quelques modifications

    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
    public static Ballon getInstance(String s)
    {
        //essaie ceci à ce niveau
        System.out.println(" " + mesInstances.size());
        Iterator it= mesInstances.iterator();
        Object b = it.next();
        do
        {
    	if(((Ballon)b).identificateur.equals(s)) // c'est comme ça qu'on compare des chaines de caractère
            {
    	    return  (Ballon) b;
    	}
    	    	 
        }		
        while (it.hasNext()) ;
        return null; // pourquoi retournes-tu null ici ?
    }

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    merci pour ton aide surtout pour le equals ça m'a bien aidé

    je crois que ma méthode marche enfin, voici le code pour ceux que ça interesse:

    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 static Ballon getInstance(String s){
    		//System.out.println(" " + mesInstances.size());
    		Iterator it= mesInstances.iterator();
     
     
    		while (it.hasNext()){
    			Object b = it.next();
    			if(((Ballon)b).identificateur.equals(s)){
    	    		  return((Ballon)b);
     
    	    	  }
    		}	
    		return null;
     
     
     
     
     
     
     
    	 }

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    un petit alors

  7. #7
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Content d'avoir pu t'aider et bonne fin de week end.

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

Discussions similaires

  1. Problème balise iterate avec la classe HashSet
    Par kokumbo dans le forum Struts 1
    Réponses: 8
    Dernier message: 07/11/2007, 15h43
  2. Problème Logic Iterate
    Par lalyly dans le forum Struts 1
    Réponses: 9
    Dernier message: 28/05/2007, 15h14
  3. Réponses: 3
    Dernier message: 20/04/2007, 17h03
  4. problème avec iterator
    Par akrobat dans le forum C++
    Réponses: 3
    Dernier message: 24/11/2005, 17h23
  5. [struts][iterate] problème logic:iterate avec un Vector
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 9
    Dernier message: 31/03/2004, 18h05

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