Java中的错误消息帮助

时间:2014-07-15 06:37:52

标签: java arrays compiler-errors

我正在开发一个程序,该程序应该在员工时间的文件中读取,将该文件存储在2D数组中,打印该2D数组,然后打印每个员工的总小时数。我知道,这有点模糊,但我的问题更多的是我一直得到的这个错误信息,而不是程序本身。这是我的代码

import java.util.Scanner;

public class Program2 {
    public static void main(String[] args) {
        int employeeNum;
        int i;
        int j;
        int empId;
        int days;
        int[][] hoursArray = new int[employeeNum][7];
        int[] totalHours = new int[hoursArray.length];
        int[] indexList = new int[totalHours.length];

        java.io.File file = new java.io.File("../instr/prog2.dat");
        Scanner fin = new Scanner(file);
             employeeNum = fin.nextInt();
                for(empId = 0; empId < employeeNum;
                empId++)
                    for(days = 0; days < 7; days++)
                        hoursArray[empId][days] = fin.nextInt();
        System.out.println(hoursArray[empId][days]);

        for(i = 0; i < hoursArray.length; i++)          for(j = 0; j < hoursArray[i].length; j++)
                totalHours[i] += hoursArray[i][j];

        sortIndex(totalHours.length, indexList);

        for (int index = totalHours.length - 1; index >= 0; index--)
                System.out.println("Employee " + indexList[index] + ": "
            + totalHours[index]);
    }

    static void sortIndex(int[] list, int[] indexList) {
        int max;
        int maxIndex;
        int i;
        int j; 
        for(i = 0; i < indexList.length; i++)
            indexList[i] = i;

        for(i = list.length - 1; i >= 1; i--) {
            max = list[i];
            maxIndex = i;

          for(j = i - 1; j >= 0; j--)
                    if(max < list[j]) {
                    max = list[j];
                    maxIndex = j;
                }
            }

        if(maxIndex != i) {
            list[maxIndex] = list[i];
            list[i] = max;

            int temp = indexList[i];
            indexList[i] = indexList[maxIndex];
            indexList[maxIndex] = temp;
        }
    }
 }

我不断收到错误消息:

"The method sortIndex(int[], int[]) in the type Prog2 is not applicable for the arguments (int, int[])"

代码的这一部分:

sortIndex(totalHours.length, indexList);

我以前从未遇到过这个错误,也不知道如何修复它。这个特殊的作业是书中的一个变体,它有一个为它编写的程序,但书中的问题并不涉及文件。我们的教授说这应该很简单,因为我们基本上可以输入书中的确切程序,只编写代码来读取文件的输入。所以我遇到问题的代码部分直接来自本书,所以我不知道我应该做些什么来修复它。请帮忙。

1 个答案:

答案 0 :(得分:1)

错误是不言自明的:

方法void sortIndex(int[] list, int[] indexList)需要两个1D数组作为输入,但在调用它时,您发送的第一个参数为totalHours.length,它是数组的长度和int值,而不是int 1D数组。

sortIndex(totalHours.length, indexList);

好像你需要打电话:

   sortIndex(totalHours, indexList);

as totalHours是一维数组。