Bonjour à tous!

Alors voilà j'ai un petit problème

J'ai la classe suivante:
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+"");
		}
}
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.

Test:
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();
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à

Résultat:
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
Rien n'est ajouté à la commande ni enlevé du stock...

2ème essai pour la méthode CommanderProduits:
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+"");
			}
Le test ne change pas.

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
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").

Si quelqu'un voit ce qui m'embête depuis plus de 3h ...