【发布时间】:2017-07-01 20:16:16
【问题描述】:
我有一个构建列表的方法,我希望它以可选值的形式返回列表的平均值。
但是,当我使用 Java 8 计算平均值时,我总是将返回值作为 OptionalDouble。
如何转换
OptionalDouble to Optional<Double>?
以下是我的平均计算代码:
private static Optional<Double> averageListValue() {
// Build list
List<Double> testList = new ArrayList<>();
testList.add(...);
...
...
return testList.stream().mapToDouble(value -> value).average();
}
谢谢。
【问题讨论】:
-
OptionalDouble 上的
getAsDouble怎么样,这将为您提供double的平均值,这是您最终想要的。 -
一个 OptionalDouble 更有效;更接近
double,因此将使用代码从Optional<Double>转换为OptionalDouble似乎更好。但是,我想你知道这一点并且有你的理由。 -
如果代码构建了一个如图所示的列表,您已经知道它永远不会为空。那么为什么要返回
Optional呢? -
@VHS 感谢您的建议。显然这种方法在这里也达成了共识。
-
@JoopEggen 感谢您的信息。是的,我有我的理由......
标签: java java-8 average optional