【问题标题】:how to call a function on array (java)?如何在数组(java)上调用函数?
【发布时间】:2018-04-14 14:03:18
【问题描述】:

我正在尝试计算数组中数字的平均值。与 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;
    }   
}

【问题讨论】:

  • 你的问题是什么?
  • "我有办法让它像在 python 中一样工作吗?" - 是的。以你的第一个例子,在参数列表中的{前面写一个new double[]
  • Java 不是 Python。您需要学习 Java 语法。
  • 在 Java 中,我们以不同的方式创建数组。如果您不将其保存在变量中,则需要new,否则编译器不知道类型。如果您遇到错误,请始终在您的问题中包含完整的错误消息。不仅仅是红色下划线代码的图像。
  • 作为初学者,您可以阅读Anonymous arrayAnonymous Class 的概念。如果您只想使用方法或变量一次,这些概念在 java 中非常有用。

标签: java arrays list average


【解决方案1】:

不要将 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()
    );
}

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      您必须在创建数组时定义数据类型。所以你的代码必须是这样的:

      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 需要被告知您正在创建一个对象以及该对象在创建时的类是什么。这可能是答案,但通常将数组保存为变量是一个更好的主意。

      【讨论】:

        猜你喜欢
        • 2019-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多