Probleme pour vider une arrayList

Probleme pour vider une arrayList - Java - Programmation

Marsh Posté le 26-04-2008 à 13:40:58    

Bonjour, pour un projet a faire pour la fac, je dois gérer un panier d'achat.
 
Lors de la validation du panier, on procede au paiement(qu'on a pas a programmer) et ensuite j'aimerais vider le panier.
Mon probléme, c'est que ma fonction n'enléve que le premier élément. Comment faire pour tout supprimer?
 
Voici une partie de mon code:
 
public class Panier  
{private java.util.ArrayList <Pieces> panier = new ArrayList <Pieces> ();
 
 /*---Methodes---*/
 public void ajouter(Pieces P)
  {panier.add(P);}
 
 public void supprimer (Pieces P)
  {panier.remove(P);}
 
 public void viderPanier()
  {for (Pieces p:panier)
   {supprimer(p);}
   System.out.println("Le panier est vide." );
   afficherPanier();
  }
 
 
Merci de votre aider :p

Reply

Marsh Posté le 26-04-2008 à 13:40:58   

Reply

Marsh Posté le 26-04-2008 à 14:15:41    

http://java.sun.com/j2se/1.5.0/doc [...] ml#clear()
 
edit: et on n'est pas censé modifier une collection pendant qu'on itère dessus [:petrus75]


Message édité par masklinn le 26-04-2008 à 14:16:53

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-04-2008 à 14:55:38    

Comment faire pour vider mon arrayList alors?

Reply

Marsh Posté le 26-04-2008 à 14:56:38    

ophelie88 a écrit :

Comment faire pour vider mon arrayList alors?


Tu as du mal avec la lecture?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-04-2008 à 15:04:14    

non, mais j'ai pas d'idées pour vider.

Reply

Marsh Posté le 26-04-2008 à 15:06:20    

Je crois qu'il faille que vous utilisiez "Clear", d'ou le lien de Masklinn.
 
Enfin, je crois hein.

Reply

Marsh Posté le 26-04-2008 à 15:08:07    

Je v essayer. J'ai regarder le lien, j'ai surtout lu les propriétés pour le remove ^^

Reply

Marsh Posté le 26-04-2008 à 15:14:41    

Quelqu'un serait comment l'implementer? car je veux bien mettre:
 
public void clear()
 
mais je mets quoi dedans?

Reply

Marsh Posté le 26-04-2008 à 15:25:08    

ophelie88 a écrit :

Quelqu'un serait comment l'implementer? car je veux bien mettre:
 
public void clear()
 
mais je mets quoi dedans?


 [:prozac]  
 
Tu pourrais pas juste lire la documentation de la méthode dont j'ai fourni le lien [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-04-2008 à 15:25:54    

Je crois pas que tu ai à implémenter quoi que ce soit.
 
D'après mes calcul, il faudrai que tu fasse un truc du genre  

Code :
  1. Clear(panier);

Reply

Marsh Posté le 26-04-2008 à 15:25:54   

Reply

Marsh Posté le 26-04-2008 à 15:36:50    

C bon, j'ai trouvé, voila le resultat:
 
public void viderpanier()  
  {panier.clear();
   System.out.println("Le panier est vide." );
          afficherPanier();  
  }
 
merci

Reply

Marsh Posté le 26-04-2008 à 15:37:28    


D'après mes calculs, tu te plantes comme une grosse buse, et je vais te demander d'arrêter de poster.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-04-2008 à 15:38:35    

vous le faites tous exprès ? oO

Reply

Marsh Posté le 26-04-2008 à 15:39:27    

Maintenant j'ai un autre probléme du méme type, j'ai changer entre temps mon arraylist, qui comprend une classe Achat. Elle a en attribut, une piéce et le nombre qu'on veux en acheter.
 
Et j'ai des probléme pour en supprimer juste une, qui et du méme genre que celle d'avant, car je veut supprimer alors que j'itére:
 
public class Panier  
{private java.util.ArrayList <Achat> panier = new ArrayList <Achat> ();
 
 /*---Methodes---*/
 public void ajouter(Achat A)
  {panier.add(A);}
 
 public void supprimer (Pieces p)
  {for ( Achat a:panier)
   {if ((p.reference()).equals(a.getP().reference()))
    if(a.getNb() != 1)
     {supprimerAchat(a);}
    else{a.setNb(a.getNb()-1);}
   }
  }
 public void supprimerAchat( Achat a)
  {panier.remove(a);}
 
 public void viderpanier()  
  {panier.clear();
   System.out.println("Le panier est vide." );
      afficherPanier();  
  }

Reply

Marsh Posté le 26-04-2008 à 15:40:16    

erreur ds le code * if(a.getNb() == 1)

Reply

Marsh Posté le 26-04-2008 à 15:41:00    

Pourrais tu commencer par utiliser la balise code? Parce que là c'est illisible

 

Ensuite, nous expliquer ce que sont censés faire des trucs comme getP ou reference, parce que ma boule de cristal est en révision chez le garagiste [:petrus75]


Message édité par masklinn le 26-04-2008 à 15:41:53

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-04-2008 à 15:47:12    

alors voila mes deux classes:
Classe Achat

Code :
  1. public class Achat
  2. {/*---Attribut---*/
  3. private Pieces p;
  4. private int nb;
  5. /*---constructeurs---*/
  6. public Achat() {}
  7. public Achat (Pieces p)
  8.  {this.p = p;}
  9. public Achat(Pieces p, int nb)
  10.  {this.p = p;
  11.   this.nb = nb;
  12.  }
  13. /*---Accesseurs---*/
  14. public Pieces getP() {return p;}
  15. public int getNb() {return nb;}
  16. public void setP(Pieces p)
  17.  {this.p = p;}
  18. public void setNb(int nb)
  19.  {this.nb = nb;}


 
 
 
Classe Panier:
 

Code :
  1. public class Panier
  2. {private java.util.ArrayList <Achat> panier = new ArrayList <Achat> ();
  3. /*---Methodes---*/
  4. public void ajouter(Achat A)
  5.  {panier.add(A);}
  6. public void supprimer (Pieces p)
  7.  {for ( Achat a:panier)
  8.   {if ((p.reference()).equals(a.getP().reference()))
  9.    if(a.getNb() == 1)
  10.     {supprimerAchat(a);}
  11.    else{a.setNb(a.getNb()-1);}
  12.   }
  13.  }
  14. public void supprimerAchat( Achat a)
  15.  {panier.remove(a);}
  16. public void viderpanier()
  17.  {panier.clear();
  18.   System.out.println("Le panier est vide." );
  19.      afficherPanier();
  20.  }


 
Les getP, c'est l'accesseurs pour recuperer la piéce, et getNb, celui pour savoir le nombre de cette piece qui est acheté

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed