[java 8] Aggiungere percentuale a dei valori in una lista

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

[java 8] Aggiungere percentuale a dei valori in una lista

Messaggioda Tino-Tom » domenica 16 settembre 2018, 11:36

Salve a tutti dovrei fare questo esercizio ma riscontro dei problemi, spero che qualcuno di voi possa aiutarmi

Codice: Seleziona tutto
 //resistuire un lista che aggiunge il 10% a tutti gli elementi che sono minori di un valore preso in input
   
 public void percentuale(int a){

        List<Integer> s= p.stream()
                         .filter(x->x.getStipendio()< a)
                         .map(x->x.getStipendio())
                         .collect(Collectors.toList());

         s.stream()
          .map(x->x.getStipendio())
          .reduce(1.10,(v,accum)->accum*v);

        System.out.println(s);

    }
Tino-Tom
Prode Principiante
 
Messaggi: 27
Iscrizione: agosto 2014
Distribuzione: Ubuntu 64bit

Re: [java 8] Aggiungere percentuale a dei valori in una list

Messaggioda stefano_carniel » mercoledì 26 settembre 2018, 17:34

ciao, attento che la filter ti toglie tutti gli elementi che non corrispondono, quindi alla fine potresti trovare solo un sottoinsieme della lista iniziale, non credo sia la richiesta dell'esercizio. Inoltre, nella prima assegnazione di s, fai già un map di x, che non so cosa sia, ma immagino un oggetto, con getStipendio, che non so cosa ritorni ma immagino un numero. Se è così, difficilmente nella seconda istruzione puoi chiamare getStipendio su x.
La reduce ritorna un unico oggetto, non una lista/array.

Proverei un map con un if dentro, tipo (vado a braccio, non ho la documentazione sotto mano)

p.map(x -> {
if (x.getStipendio() < a)
x.setStipendio(stipendio*1.1);
return x;
})
Avatar utente
stefano_carniel
Prode Principiante
 
Messaggi: 244
Iscrizione: marzo 2007


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 3 ospiti