gpt4 book ai didi

java - 尝试计算 ArrayList 中的平均值

转载 作者:行者123 更新时间:2023-11-30 03:23:13 27 4
gpt4 key购买 nike

我正在尝试编写一些代码,它接受任意数量的条目并将其存储在给定特定条件的 ArrayList 中。我无法做的是找到 ArrayList 中存储的值的平均值。这是到目前为止编写的代码:

import java.util.ArrayList;
import java.util.Scanner;

public class App {
private ArrayList<Integer> temp;
private int t;
private int count = 0;

public void main() {
Scanner input = new Scanner(System.in);
temp = new ArrayList<>();
System.out.println("Enter temperatures: ");
do {
t = input.nextInt();
if (t == -99) {
System.out.println("Program Terminating..");
break;
} else {
temp.add(t);
}
} while (t != -99);
for (int i = 0; i < temp.size(); i++) {
if (temp.get(i) > 40) {
count++;
}

}
System.out.println(count);

}
}

最佳答案

你的情况很奇怪;仅当该值大于 40 时才执行操作。下面的代码将这些考虑在内;如果您不希望这样做,请删除条件。

以传统方式,您可以使用带有计数器的增强型 for 来获取所有大于 40 的值并对这些值求平均值...

double sum = 0;
for(Integer i : temp) {
if(i > 40) {
sum += i;
count++;
}
}

if(count != 0) { // avoid divide-by-zero error here
System.out.println(sum / count);
}

...或者使用 Java 8,您可以使用流,过滤掉那些小于 40 的流,然后获取 double 值的平均值:

System.out.println(temp.stream()
.filter(x -> x > 40)
.mapToInt(Integer::intValue)
.average()
.getAsDouble());

关于java - 尝试计算 ArrayList 中的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30827558/

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