Java中如何调用数组函数?能否像Python那样直接传数组字面量求平均值?
嘿,这个问题我太懂了!Java作为静态类型语言,确实不像Python那样能直接丢个字面量列表就调用函数,但其实有两种简单的方式能实现你想要的「不用提前给数组分配变量」的效果:
方式1:直接传递匿名数组
你只需要在数组字面量前显式加上new double[],告诉编译器这是一个double类型的数组,就能直接作为参数传给average方法了,不用提前定义arx变量。
完整代码示例:
public class TestTwo { public static void main(String[] args) { // 直接传递匿名数组,无需提前赋值给变量 System.out.println(average(new double[]{1,2.0,4,5,6,7.0})); } public static double average(double[] args) { double sum = 0.0; for (double d : args) { sum += d; } return sum / args.length; // 补全你没写完的平均值计算逻辑 } }
方式2:使用可变参数(更接近Python的写法)
如果把average方法的参数改成可变参数(用double...代替double[]),你甚至可以直接像Python那样传逗号分隔的数值,Java会自动把这些数值打包成一个double[]数组传给方法,连数组括号都不用写!
完整代码示例:
public class TestTwo { public static void main(String[] args) { // 直接传逗号分隔的数值,和Python调用方式几乎一致 System.out.println(average(1,2.0,4,5,6,7.0)); } // 把参数改为可变参数double... args public static double average(double... args) { // 先处理空参数的情况,避免除以0报错 if (args.length == 0) { return 0.0; } double sum = 0.0; for (double d : args) { sum += d; } return sum / args.length; } }
这两种方式都能满足你「无需为输入数组分配变量」的需求,其中可变参数的写法最接近Python的使用习惯,推荐试试!
内容的提问来源于stack exchange,提问作者eran gal
相关产品推荐
相关产品推荐

