繁体   English   中英

调用方法时有关参数的错误

[英]Error regarding arguments when calling a method

调用方法findPosition时出错。 我正在尝试用该程序测量算法平均运行多长时间,超过1000次迭代。 然后我想调用该方法并在数组中找到值的位置(如果找到)。 我收到一个编译错误,传递的参数与方法不匹配。 具体来说,第二个参数被视为一个int,即使我想传递一个数组中的值。 我找不到我的错误,也不熟悉使用数组,所以如果你能告诉我我的错误在哪里,请提前感谢你。

import java.util.*;

public class AlgorithmRuntime 
{

static int num = 0;
static long total = 0;
static long average = 0;

public static void main (String[] args)
{
    boolean isValueInArray;
    int searchValue;

    do {
    // 1. Setup
    int size = 1000;
    long sum = 0;
    int[] iArray = new int[size];

    Random rand = new Random(System.currentTimeMillis());
    for (int i = 0; i < size; i++)
        iArray[i] = rand.nextInt();

    searchValue = rand.nextInt(1000) + 1;

    // 2. Start time
    long start = System.nanoTime();

    // 3. Execute algorithm
    for (int j = 0; j < size; j++)
    {
        if (iArray[j] == searchValue)
        {
            isValueInArray = true;
        }

        if (isValueInArray == true)
            findPosition(searchValue, iArray[isValueInArray]);
    }

    // 4. Stop time
    long stop = System.nanoTime();

    long timeElapsed = stop - start;

    total = total + timeElapsed;
    num++;

    } while (num < 1000);

    average = total / 1000;

    System.out.println("The algorithm took " + average 
            + " nanoseconds on average to complete.");
}
}

public int findPosition(int valueOfInt, int[] array)
{
  for (int i = 0; i < array.length; i++)
    if (array[i] == valueOfInt)
     return i;

  return -1;
}

findPostion方法接受两个参数; 一个是int类型,另一个是int array 这是findPosition的签名:

public int findPosition(int valueOfInt, int[] array)

但是你传递了两个int值,如下所述:

findPosition(searchValue, iArray[isValueInArray];

isArray是一个int数组,但iArray[isValueInArray]是索引isValueInArray的int值。

您需要将数组作为第二个参数传递而不是int值。

你需要传递

if (isValueInArray == true) {
            findPosition(searchValue, iArray);
}

iArray [isValueInArray]会给你一个int值而不是数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM