如何在数组(java)上调用函数?

时间:2018-04-14 14:03:18

标签: java arrays list average

我试图计算数组中数字的平均值。与Python不同,以下内容对我不起作用: not working

但是,如果我做this一切都没问题。

有没有办法让它像Python一样工作?没有为输入数组分配变量?

我的代码:

public class TestTwo {

    public static void main(String[] args) {
        double[] arx = {1,2.0,4,5,6,7.0};
        System.out.println(average(arx));
    }

    public static double average(double [] args) {
        double sum = 0.0;
        for (double d : args) {
            sum += d;
        }
        return sum / args.length;
    }   
}

3 个答案:

答案 0 :(得分:3)

不要将Java与python进行比较。它们是两种不同的语言。

图像中的代码无法编译,因为编译器无法推断出类型。如果您不想编写变量,那么您只需传递匿名数组即可。例如new double[]{...}

System.out.println(average(new double[]{1,2.0,4,5,6,7.0}));

如果您使用的是Java 8,则可以将代码缩减为:

public static void main(String[] args) {
    System.out.println(
        Arrays.stream(new double[]{1,2.0,4,5,6,7.0})
            .average()
            .getAsDouble()
    );
}

答案 1 :(得分:1)

如果要避免创建额外变量,可以在方法调用中创建数组:

System.out.println(average(new double[] {1,2.0,4,5,6,7.0}));

答案 2 :(得分:1)

制作数组时必须定义数据类型。因此,您的代码必须如下所示:

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;
    }  
}

与python不同,Java需要被告知您正在创建一个对象以及该对象在创建时的类。这可能是答案,但通常最好将数组保存为变量。