如何实现返回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; } }
代码逻辑说明
- 实例化
prefixAverages列表存储结果,避免空指针 - 用
cumulativeSum(float类型)累加元素,保证精度 - 遍历传入列表时,每次累加当前元素后计算前缀平均(累加和除以已遍历元素个数
i+1) - 将计算得到的平均值依次添加到结果列表,最终返回
内容的提问来源于stack exchange,提问作者Metakoku
相关产品推荐
相关产品推荐

