Bonjour à tous!
Alors voilà j'ai un petit problème
J'ai la classe suivante:Le but de la méthode CommanderProduits() c'est de regarder, pour chaque String de la liste produits (2 String peuvent être identiques), s'il existe dans le stock de produits (Singleton), un objet Produit qui a ce nom. Si c'est le cas, on ajoute cet objet à la liste produits_commandes (variable d'instance de le classe Commande), et on le supprime du stock de produits.
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 import java.util.ArrayList; import java.util.List; public class Commande { private List<Produit> produits_commandes; public Commande() { produits_commandes = new ArrayList<Produit>(); } public void CommanderProduits(String nom_client, List<String> produits) { for (String prod : produits){ int i; i=0; for (int j=ProduitsEnVente.getProducts().size()-1;i>0;j--){ Produit prodbis = ProduitsEnVente.getProducts().get(j); if (prod==prodbis.getNom_produit() && i<1){ produits_commandes.add(prodbis); ProduitsEnVente.getInstance(); ProduitsEnVente.getProducts().remove(j); i++; } } } String compo = new String(); for (Produit prod2 : produits_commandes){ ProduitsEnVente.getInstance(); compo = compo +" "+prod2.getNom_produit(); } System.out.println("Mr "+nom_client+" vient de passer une commande: : "+compo+""); } }
Test:Sachant qu'il y a plus de 3 frites et 1 Big Mac dans le stock donc pas de soucis de ce côté là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ProduitsEnVente.getInstance(); ProduitsEnVente.DecrisStock(); List<String> produits = new ArrayList<String>(); produits.add("frite"); produits.add("frite"); produits.add("Big Mac"); produits.add("frite"); Commande com1 = new Commande(); com1.CommanderProduits("Elodie", produits); ProduitsEnVente.getInstance(); ProduitsEnVente.DecrisStock();
Résultat:Rien n'est ajouté à la commande ni enlevé du stock...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Le stock de produits est : Big Mac Big Mac Big Mac frite frite frite frite frite frite frite frite frite frite frite frite Mr Elodie vient de passer une commande: : Le stock de produits est : Big Mac Big Mac Big Mac frite frite frite frite frite frite frite frite frite frite frite frite
2ème essai pour la méthode CommanderProduits:
Le test ne change pas.
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 public void CommanderProduits(String nom_client, List<String> produits) { int i; for (String prod : produits){ i=0; ProduitsEnVente.getInstance(); for (Produit prodbis : ProduitsEnVente.getProducts()){ if (prod==prodbis.getNom_produit() && i<1){ produits_commandes.add(prodbis); i++; } } } ProduitsEnVente.getInstance(); ProduitsEnVente.getProducts().removeAll(produits_commandes); String compo = new String(); for (Produit prod2 : produits_commandes){ compo = compo +" "+prod2.getNom_produit(); } System.out.println("Mr "+nom_client+" vient de passer une commande: : "+compo+""); }
Au moins ici çà fait quelque chose. Ce qui est bien c'est que ce qu'y est commandé est ajoutée à la commande mais lorsque l'on commande plusieurs produits ayant le même nom il n'en retire qu'un (comme ici avec "frite").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Le stock de produits est : Big Mac Big Mac Big Mac frite frite frite frite frite frite frite frite frite frite frite frite Mr Elodie vient de passer une commande: : frite frite Big Mac frite Le stock de produits est : Big Mac Big Mac frite frite frite frite frite frite frite frite frite frite frite
Si quelqu'un voit ce qui m'embête depuis plus de 3h ...
Partager