gpt4 book ai didi

java - 如果所有元素都为空,则流 maptostream 平均值出现问题

转载 作者:行者123 更新时间:2023-11-30 07:40:10 25 4
gpt4 key购买 nike

下面一行有问题,如果所有的值都为null,它会直接进入异常,它不应该返回0吗?

Double avgTemperature = temp.stream()
.filter(o -> o != null)
.mapToDouble(EnvironmentData::getTemperature)
.average()
.getAsDouble();

最佳答案

如果 OptionalDouble 为空,

getAsDouble() 将抛出 NoSuchElementException

使用orElse 来指定一个默认值:

double avgTemperature = temp.stream().filter(o -> o != null).mapToDouble(EnvironmentData::getTemperature).average().orElse(0.0);

请注意,如果 getTemperature() 返回引用类型,并且它可能返回 null,您也应该过滤掉这些 null 值:

double avgTemperature = 
temp.stream()
.filter(o -> o != null && o.getTemperature() != null)
.mapToDouble(EnvironmentData::getTemperature)
.average()
.orElse(0.0);

关于java - 如果所有元素都为空,则流 maptostream 平均值出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58062307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com