Ho seguito semplice codice che sto cercando di convertire in stile funzionaleSostituzione if-else all'interno di 'per' i loop con Java-8 Streams
for(String str: list){
if(someCondition(str)){
list2.add(doSomeThing(str));
}
else{
list2.add(doSomethingElse(str));
}
}
E 'facilmente possibile sostituire questo ciclo con il flusso? L'unica opzione che vedo è quella di eseguire iterazioni sul flusso due volte con due diverse condizioni di filtro.
E perché vuoi farlo se il tuo codice funziona? – fge
È possibile utilizzare una mappa con un'istruzione condizionale 'Elenco list2 = list.stream(). Map (str -> someCondition (str)? DoSomeThing (str): doSomethingElse (str)). Collect (toList());' . Che sia più leggibile o meno dipende dal lettore (lo trovo chiaro personalmente). Puoi sempre estrarre questo processo in un metodo di supporto, se lo desideri. –
@fge solo per capire meglio la programmazione funzionale in Java :) – sidgate