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

时间:2013-02-21 22:59:46

标签: java arrays arraylist average

以最短的形式表示最少的java代码行数。我想得到整数值的ArrayList项的平均值。 例如,对于ArrayList ar

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

我正在寻找像

这样的东西
ar.Average()

ar.Sum()

Arrays.Average(ar)

PS。我知道我们可以循环完成。只是寻找一个更短的选择;

4 个答案:

答案 0 :(得分:0)

您可以使用数学库,例如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)。虽然对于类似平均值的东西,可能不值得导入库。

答案 1 :(得分:0)

commons math library包含mean以及您可能需要的任何其他简单统计信息。也许正是你想要的?

答案 2 :(得分:0)

如果您已经在使用Java 8:

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

答案 3 :(得分:0)

代码行总是一个毫无意义的措施,但如果这是你关心的:

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