1

最短的形式是指最少的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

4 回答 4

0

代码行数总是一个毫无意义的衡量标准,但如果这是你关心的:

int sum=0;for(Integer i:ar)sum += i;System.out.println(sum);
于 2013-02-21T23:14:09.893 回答
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)。虽然对于一般的东西,它可能不值得导入一个库。

于 2013-02-21T23:06:33.643 回答
0

公共数学库包含平均值以及您可能想要的简单统计信息。也许正是你在寻找什么?

于 2013-02-21T23:09:11.230 回答
0

如果您已经在使用 Java 8:

double average = Arrays.asList(1, 2, 3, 4)
                       .stream()
                       .map(Integer::intValue)
                       .average()
                       .getAsDouble();
于 2013-02-21T23:11:46.013 回答