Lista e check su proprietà

di il
3 risposte

Lista e check su proprietà

Ciao,
ho un problema che mi sta tenendo occupato da un po'.
Classe contocorrente, proprietà id, intestatario e saldo.
Ho una lista di oggetti contocorrente e per ogni elemento con lo stesso intestatario ma id differente devo sommare il saldo.

la mia lista ha :
1, rossi, 15
2, bianchi, 30
3, rossi, 25

dovrei quindi arrivare ad avere una lista con:
1, rossi, 40
2, bianchi, 30
3, rossi, 40

ma ottengo:
1, rossi, 40
2, bianchi, 30
3, rossi, 80

utilizzo un ciclo innestato che a parità di intestatario ed id differente mi somma appunto gli importi, quindi capisco l'errore ma non so come risolvere, potreste darmi qualche indicazione? grazie

3 Risposte

  • Re: Lista e check su proprietà

    Direi che senza vedere il codice è difficile darti suggerimenti...
  • Re: Lista e check su proprietà

    SpiritoLibero ha scritto:


    Direi che senza vedere il codice è difficile darti suggerimenti...
    Ciao, non l'ho aggiunto perché è sbagliato, questo è un pezzo di pseudocodice:
    
    Contocorrente (String id, String intestatario, BigDecimal somma);
    
    for (Contocorrente conto : myList) {
          for (Contocorrente conto2 : myList) {
    	     if (!conto.getId().equals(conto2.getId()  && conto.getintestatario ().equals(conto2.getintestatario () )
    				 conto.setSaldo(conto.gerSaldo().add(conto2.gerSaldo());
    }
    }
    come dicevo, la lista ha :
    1, rossi, 15
    2, bianchi, 30
    3, rossi, 25

    dovrei quindi arrivare ad avere una lista con:
    1, rossi, 40
    2, bianchi, 30
    3, rossi, 40

    ma ottengo:
    1, rossi, 40
    2, bianchi, 30
    3, rossi, 80
  • Re: Lista e check su proprietà

    Beh, mi sembra ovvio che così facendo prima troverai la coppia (conto1, conto3) poi ritroverai la stessa coppia a parti invertite (conto3, conto1). Quindi prima sommi sul conto1 il saldo del conto3; poi, al passaggio successivo, sommi al conto3 il saldo del conto1 (al quale avevi già sommato il saldo del conto3 al passaggio precedente!).

    Devi, in qualche modo, tenere traccia degli incroci.

    Probabilmente una bella mappa e UNA SOLA scansione della lista, ti aiuterebbe nel tuo intento.

    Pensaci.
Devi accedere o registrarti per scrivere nel forum
3 risposte