Java 8 flux moyen pour flotteur
J'ai le modèle suivant:
public class WeightChange {
private float value;
public float getValue() {
return value;
}
public void setValue(float value) {
this.value = value;
}
}
Et collection:
private List<WeightChange> weightChanges;
J'ai implémenté une fonction qui obtient une valeur de poids moyenne en utilisant les fonctionnalités Java 8:
public float getAvgChangedWeight() {
return (float) weightChanges.stream().mapToDouble(WeightChange::getValue).average().getAsDouble();
}
Pourriez-vous aider à l'améliorer parce que je ne pense pas que le casting en double soit une bonne idée.
Il lève également une exception lorsque la collection weightChanges
est vide. Comment fait-on l'améliorer dans ce cas?
7
Author: Stuart Marks, 2014-09-16
1 answers
Pour répondre à la deuxième partie de votre question, si vous voulez éviter l'exception lorsque la liste est vide et renvoyer une valeur double
, utilisez orElse
au lieu de getAsDouble
:
return weightChanges.stream()
.mapToDouble(WeightChange::getValue)
.average()
.orElse(Double.NAN);
23
Author: Misha, 2014-09-16 20:26:54