创建一个sum变量:
double sum = 0;
Run Code Online (Sandbox Code Playgroud)
使用for循环遍历列表中的元素:
for (double d : yourList)
Run Code Online (Sandbox Code Playgroud)
在每次迭代中,添加到sum当前值:
sum += d;
Run Code Online (Sandbox Code Playgroud)
在循环之后,要找到平均值,除以sum列表中的元素数:
double avg = sum / yourList.size();
Run Code Online (Sandbox Code Playgroud)
这里的每个人都认为这太简单了 ......
上述解决方案实际上并不完美.如果列表中的前几个元素非常大并且最后的元素很小,则sum += d由于双精度的精确度,可能不会对末尾产生影响.
解决方案是在进行平均计算之前对列表进行排序:
Collections.sort(doublesList);
Run Code Online (Sandbox Code Playgroud)
现在首先添加小元素,这样可以确保它们尽可能准确地计算并为最终总和做出贡献:-)