浮点数的 Java 8 流平均值

2022-09-01 12:27:31

我有以下模型:

public class WeightChange {

    private float value;

    public float getValue() {
        return value;
    }

    public void setValue(float value) {
        this.value = value;
    }

}

和收藏:

private List<WeightChange> weightChanges;

我已经实现了使用Java 8功能获取平均权重值的函数:

public float getAvgChangedWeight() {
    return (float) weightChanges.stream().mapToDouble(WeightChange::getValue).average().getAsDouble();      
}

你能不能帮忙改进它,因为我不认为加倍是一个好主意。

此外,当集合为空时,它会引发异常。在这种情况下,如何改进它?weightChanges


答案 1

要回答问题的第二部分,如果要在列表为空并返回一些值时避免异常,请使用代替:doubleorElsegetAsDouble

return weightChanges.stream()
    .mapToDouble(WeightChange::getValue)
    .average()
    .orElse(Double.NaN);

答案 2

推荐