【问题标题】:Array as parametar [duplicate]数组作为参数[重复]
【发布时间】:2016-02-23 10:47:54
【问题描述】:

我不明白,也无法在谷歌上找到我如何调用我的方法,其参数是一个数组?

private static void printArray(double a[],int p){
        int count[]=new int[p];
        for(int i=0;i<a.length;i++){
            for(int j=0;j<p;j++){
                if((a[i]>=100/p*j) && (a[i]<100/p*(j+1))){
                    count[j]++;

比如在我的main方法中如何调用这个方法:

我尝试了printArray({1,2,3,4,5},5); 但它不起作用或printArray([10],5); 但仍然不起作用?

【问题讨论】:

  • new Double[]{1.1,1.2}

标签: java arrays methods


【解决方案1】:

您首先需要创建一个数组。就像你在这里所做的那样:

int count[]=new int[p];

在您的示例中类似于

double myArray[] = {1,2,3,4,5};

然后您将变量名称传递给您的方法,例如:

printArray(myArray, someInt);

希望这会有所帮助。

【讨论】:

  • 谢谢你!我很感激
  • 没有问题。成功了吗?
  • yes :) 实际上我创建了方法 double [] createArray(int n).. 但是太笨了,不知道要与其他方法一起使用。
  • 太棒了。很高兴听到它。
【解决方案2】:

您的电话的问题是:

  • printArray({1,2,3,4,5},5); - {1,2,3,4,5} 作为参数无法识别。您需要创建一个 double 类型的数组。
  • printArray([10],5); - [10] 也不被编译器识别,也不是传递 double[] 的正确方法。

这是如何在 java 中内联初始化数组: new double[]{1,2,3,4,5}

所以,这就是你的称呼:
printArray(new double[]{1,2,3,4,5},5);

【讨论】:

  • double[] 与 Double[] 的类型不同。而new Double[](1,2,3,4,5) 不是有效的 Java。
  • @JBNizet 感谢您的指出
【解决方案3】:

如果方法与 main 方法在同一个类中,您可以这样调用您的方法。

 double[] arr = {1,2,3,4,5};
 printArray(arr,5);

【讨论】:

    【解决方案4】:

    [10] 不是变量。当你传递一个数组时,你不需要括号。只是变量名。例如:

    double array1[] = {10,12,13};
    printArray(array1);
    

    【讨论】:

    • 那不会编译。
    • @JBNizet array1 需要初始化。
    • 这正是 OP 所要求的:如何初始化双精度数组并将其传递给方法。
    • @JBNizet 哎呀误读了这个问题。感谢您指出这一点
    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 2017-12-02
    相关资源
    最近更新 更多