gpt4 book ai didi

java - 偶数的平均值返回错误的值

转载 作者:搜寻专家 更新时间:2023-11-01 01:05:51 25 4
gpt4 key购买 nike

我正在尝试更深入地了解流,因此我正在做一些基本练习。在这一个中,我想计算奇数的平均值。我为此编写了这个算法,但它返回了一个不正确的结果 (8.0)。我已尝试调试它,但我无法找到它的实际作用。

List<Integer> numbers = Arrays.asList(1, 3, -2, -4, -7, -3, -8, 12, 19, 6, 9, 10, 14);

OptionalDouble result = numbers.stream()
.filter(i -> i % 2 == 1)
.mapToDouble(i -> i).average();
if (result.isPresent()) {
System.out.println(result);
} else {
System.out.println("Error");
}

我的代码现在在做什么?我应该如何修复它才能发挥它应有的作用?

最佳答案

(i -> i % 2 == 1)

这仅适用于正奇数,因为在 Java 中,如果 % 运算符的第一个操作数是负数,则返回负数(或零)。

如果你只想保留偶数个数,应该是:

(i -> i % 2 == 0)

如果你想保留所有的奇数(正数和负数),你可以使用:

(i -> i % 2 != 0)

关于java - 偶数的平均值返回错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54008089/

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