Bonsoir,

Je suis NUL de chez NUL en algo....et je n'arrive pas à effectuer une simple sous-totalisation...

Mon but est d'écrire toute les lignes d'une liste, en insérant une ligne de sous-totalisation à rupture sur un attribut de type String.
Classe Java utilisée
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
import java.math.BigDecimal;
 
public class FondsMontant
{
 
	private BigDecimal montant;
 
	private String codeFonds;
 
	public FondsMontant(BigDecimal montant, String codeFonds)
	{
		super();
		this.montant = montant;
		this.codeFonds = codeFonds;
	}
 
	/**
         * @return the montant
         */
	public BigDecimal getMontant()
	{
		return montant;
	}
 
	/**
         * @param montant the montant to set
         */
	public void setMontant(BigDecimal montant)
	{
		this.montant = montant;
	}
 
	/**
         * @return the codeFonds
         */
	public String getCodeFonds()
	{
		return codeFonds;
	}
 
	/**
         * @param codeFonds the codeFonds to set
         */
	public void setCodeFonds(String codeFonds)
	{
		this.codeFonds = codeFonds;
	}
 
 
 
}
Début de codage de la sous-totalisation :
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
public class DateTest extends TestCase
 
{
 
	public void testerRupture()
	{
 
		BigDecimal sousTotal = BigDecimal.ZERO;
		String fondsPrecedent = "ceci nest pas un fonds";
 
		List<FondsMontant> liste = new ArrayList<FondsMontant>();
 
		FondsMontant fm1 = new FondsMontant(new BigDecimal("1.1"), "code1");
		FondsMontant fm2 = new FondsMontant(new BigDecimal("2.2"), "code1");
		FondsMontant fm3 = new FondsMontant(new BigDecimal("3.3"), "code1");
		FondsMontant fm4 = new FondsMontant(new BigDecimal("4.4"), "code2");
		FondsMontant fm5 = new FondsMontant(new BigDecimal("5.5"), "code2");
		FondsMontant fm6 = new FondsMontant(new BigDecimal("6.6"), "code2");
		liste.add(fm1);
		liste.add(fm2);
		liste.add(fm3);
		liste.add(fm4);
		liste.add(fm5);
		liste.add(fm6);
 
		for (FondsMontant fondsMontant : liste)
		{
 
 
			if (fondsPrecedent.compareTo(fondsMontant.getCodeFonds()) == 0)
			{
				sousTotal=sousTotal.add(fondsMontant.getMontant());
 
				System.out.println(fondsMontant.getCodeFonds() + " - "
						+ fondsMontant.getMontant());
				System.out.println(sousTotal);
			}
			else
			{
 
				fondsPrecedent = fondsMontant.getCodeFonds();
 
				sousTotal=BigDecimal.ZERO;
 
 
			}
			System.out.println(fondsMontant.getCodeFonds() + " - "
					+ fondsMontant.getMontant());
			System.out.println(sousTotal);
 
 
		}
 
	}
 
}

Si vous pouviez m'aider pour l'algo au moins.....j'ai honte!
Cordialement,
Sherkaan