扫码阅读
手机扫码阅读

Java计算数组平均值--最后放大招

69 2024-04-11

今天继续Groovy放大招系列文章,本期的主题是求array的平均值。

一般的方案就是求和然后计算平均值,求和的话可以用for循环或者Lambda语法。

for循环

首先创建一个带有值的数组,在for循环查找数组中的所有元素的总和,然后将总和除以数组的长度即可得到数字的平均值。

package com.fun.ztest.java; import com.fun.frame.SourceCode; public class Tdd extends SourceCode { public static void main(String[] args) { int[] array = {43, 54, 6, 2, 75, 34, 1}; int sum = 0; for (int i = 0; i < array.length; i++) { sum += array[i]; } output(sum * 1.0 / array.length);
    }
} 

控制台输出:

INFO-> 当前用户:fv,IP:10.60.192.21,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.7 INFO-> 30.714285714285715 Process finished with exit code 0 

lambda写法

下面展示JavaLambda语法完成求平均值。

package com.fun.ztest.java; import com.fun.frame.SourceCode; import org.apache.commons.lang3.ArrayUtils; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Tdd extends SourceCode { public static void main(String[] args) { int[] array = {43, 54, 6, 2, 75, 34, 1};
        List integers = Arrays.asList(ArrayUtils.toObject(array));
        Integer collect = integers.stream().collect(Collectors.summingInt(x -> x));
        output(collect * 1.0 / array.length);
    }
} 

控制台输出:

INFO-> 当前用户:fv,IP:10.60.192.21,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.7 INFO-> 30.714285714285715 Process finished with exit code 0 

Groovy放大招

下面就是见证奇迹的时刻。

package com.fun.ztest.groovy import com.fun.frame.httpclient.FanLibrary import org.slf4j.Logger import org.slf4j.LoggerFactory class Td extends FanLibrary { private static Logger logger = LoggerFactory.getLogger(Td.class) public static void main(String[] args) { def array = [43, 54, 6, 2, 75, 34, 1];
        output(array.sum() / array.size())
    }
} 

控制台输出:

INFO-> 当前用户:fv,IP:10.60.192.21,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.7 INFO-> 30.7142857143 Process finished with exit code 0 
原文链接: https://mp.weixin.qq.com/s?__biz=MzU4MTE2NDEyMQ==&mid=2247488612&idx=1&sn=a037a1984122343a8b603d4ea1a9abdf