You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现返回ArrayList<Float>的PrefixAverage浮点平均值计算方法?

修正并实现PrefixAverage静态方法

需求说明

需实现静态方法PrefixAverage,签名为public static ArrayList<Float> PrefixAverage(ArrayList<Float> X),计算传入列表的前缀平均值(即前1个、前2个……前n个元素的平均值),返回结果为ArrayList<Float>类型。

常见语法错误修正点

  • 未导入java.util.ArrayList:编译器无法识别ArrayList类,必须添加导入语句
  • 累加变量用int类型:会丢失小数精度,需改用float类型
  • 循环索引越界:循环条件需设为i < X.size(),而非i <= X.size()
  • 未初始化结果列表:直接返回未实例化的ArrayList会抛出空指针异常
  • 整数除法问题:计算平均值时需确保除数/被除数至少一方为float,避免整数截断

正确实现代码

import java.util.ArrayList;

public class AverageCalculator {
    public static ArrayList<Float> PrefixAverage(ArrayList<Float> X) {
        ArrayList<Float> prefixAverages = new ArrayList<>();
        float cumulativeSum = 0.0f;

        for (int i = 0; i < X.size(); i++) {
            cumulativeSum += X.get(i);
            // 计算前缀平均值,确保浮点运算精度
            float avg = cumulativeSum / (i + 1);
            prefixAverages.add(avg);
        }

        return prefixAverages;
    }
}

代码逻辑说明

  1. 实例化prefixAverages列表存储结果,避免空指针
  2. 用cumulativeSum(float类型)累加元素,保证精度
  3. 遍历传入列表时,每次累加当前元素后计算前缀平均(累加和除以已遍历元素个数i+1)
  4. 将计算得到的平均值依次添加到结果列表,最终返回

内容的提问来源于stack exchange,提问作者Metakoku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 02:40:32