java - java - 如何计算java中前七个值之后的7个最新值的移动平均值?
问题描述
我的问题是如何在前七个值之后使用 ArrayList 计算 7 个最新值的移动平均值?
这是我的前七个值的代码,我不明白的是如何在前七个值之后获得最近 7 个值的平均值,如果有人能帮助我,我将不胜感激。
import java.util.ArrayList;
导入java.io.*;
导入 java.util.Scanner;
公共类移动平均{
public static void main(String[]args) throws FileNotFoundException{
int sum = 0;
Scanner s = new Scanner(new File("values.txt"));
ArrayList<Integer> values = new ArrayList<>();
ArrayList<Integer> averages = new ArrayList<>();
System.out.println("\tValue"+"\t\tRolling Average");
System.out.println();
while(s.hasNext())
{
values.add(s.nextInt());
}
for(int i = 0; i<7;i++)
{
sum = sum + values.get(i);
averages.add(sum/(i+1));
System.out.println("\t"+values.get(i)+"\t\t"+averages.get(i));
}
}
}
解决方案
如何计算java中前七个值之后的7个最新值的平均值?
这可以保证您有足够的条目。然后它简单地平均适当的子列表,按计算打印出来。
List<Integer> list = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14);
if (list.size() < 14) {
System.out.println("Insufficient values provided");
} else {
int count = 1;
double sum = 0;
for (int val : list.subList(7, 14)) {
sum += val;
System.out.printf("%d running average = %.2f%n", val,
sum / count++);
}
}
对于这个特定的数据,打印
8 running average = 8.00
9 running average = 8.50
10 running average = 9.00
11 running average = 9.50
12 running average = 10.00
13 running average = 10.50
14 running average = 11.00
推荐阅读
- python-3.x - Model.fit 值误差(文本分类模型)
- python - 在 Tensorflow 2.x 中我们不需要指定输入形状吗?
- wordpress - 如何编写 .htaccess 以将 url 重定向到 AWS CloudFront?
- ios - Swift playground execution aborted
- sql - 使用字母数字和特殊字符值对 varchar 进行排序
- java - 为什么“List myList”作为方法中的参数可以接受 ArrayList
numberList = new ArrayList<>(); - python-3.x - 我想结合 map & lambda 来计算列表中满足给定条件的项目数
- python - 如何在 Open3D 中加载 3D 模型(.obj)?
- python - 将 Spark Data Frame 或 GlobalTempView 与 PySpark 一起使用
- r - 如何使列名中的列成为其值?