扫码阅读
手机扫码阅读
Java计算数组平均值--最后放大招
72 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写法
下面展示Java
的Lambda
语法完成求平均值。
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
FunTester的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线