Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 求ArrayList元素平均值的最短形式_Java_Arrays_Arraylist_Average - Fatal编程技术网

Java 求ArrayList元素平均值的最短形式

Java 求ArrayList元素平均值的最短形式,java,arrays,arraylist,average,Java,Arrays,Arraylist,Average,我所说的最短形式是指java代码行数最少。我想得到整数值数组列表中项目的平均值。 例如,对于ArrayListar: ArrayList<Integer> ar = new ArrayList<Integer>(Arrays.asList(1,2,3,5,8,13,21)); 或 或 另外,我知道我们可以循环进行。只是寻找一个较短的替代方案 您可以使用ApacheCommonsMath之类的数学库 特别是SummaryStatics对象()。虽然对于像average这

我所说的最短形式是指java代码行数最少。我想得到整数值数组列表中项目的平均值。 例如,对于ArrayListar

ArrayList<Integer> ar = new ArrayList<Integer>(Arrays.asList(1,2,3,5,8,13,21));


另外,我知道我们可以循环进行。只是寻找一个较短的替代方案

您可以使用ApacheCommonsMath之类的数学库


特别是SummaryStatics对象()。虽然对于像average这样的东西,可能不值得导入一个库。

包含一个库以及您可能需要的任何其他简单统计信息。也许正是您想要的?

如果您已经在使用Java 8:

double average = Arrays.asList(1, 2, 3, 4)
                       .stream()
                       .map(Integer::intValue)
                       .average()
                       .getAsDouble();

代码行始终是一个毫无意义的度量,但如果这是您所关心的:

int sum=0;for(Integer i:ar)sum += i;System.out.println(sum);

相关(但不是完全重复):那么您正在寻找一个已经存在的方法?检查?循环中大约有5行,你可以把它放入一个从别处调用的方法中。你真的为引入一个新的短方法而烦恼吗?我知道,但这是一个经典的问题,我认为ArrayList或类似的实用程序中现在应该有一些东西。ArrayList可以包含任何东西,而不仅仅是整数,所以它包含特定于数学的函数是没有意义的。
Arrays.Average(ar)
double average = Arrays.asList(1, 2, 3, 4)
                       .stream()
                       .map(Integer::intValue)
                       .average()
                       .getAsDouble();
int sum=0;for(Integer i:ar)sum += i;System.out.println(sum);