获取ArrayList元素平均值的最短形式



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

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

我正在寻找类似的东西

ar.Average()

ar.Sum()

Arrays.Average(ar)

PS。我知道我们可以循环进行。只是在寻找一个更短的替代方案;

您可以使用诸如Apache Commons Math之类的数学库。

http://commons.apache.org/math/apidocs/index.html

特别是SummaryStaticics对象(http://commons.apache.org/math/apidocs/src-html/org/apache/commons/math3/stat/descriptive/SummaryStatistics.html#line.123)。尽管对于一般的东西来说,导入一个库可能不值得。

commons数学库包含一个均值以及您可能想要的任何其他简单统计信息。也许这正是你想要的?

如果您已经在使用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);

最新更新