设计java中的方法接收2 D数组并操纵其中的每一列

时间:2015-08-12 11:33:11

标签: java multidimensional-array calculated-columns

我正在尝试在java中设计一个接收2D数组并操纵其中每个列的方法。然后,保存此操作,而每列将表示为返回数组中的一个值。我的问题是,我不知道,我怎么能单独阅读每一栏。你能建议我吗?

int[] ibraMethod(int[][] InputArray){
    int[] Array_After_ibraMethod = new int[24]; 
    int APoints = 0;
    int BPoints = 0;
    int CPoints = 0;

    for(int h = 1; h < 24 ; h++){
        System.out.println("\n Hour"+ h);

    for(int i = 0; i<InputArray.length; i++){
        for(int j = 0; j<InputArray[h].length; j++){
        if(InputArray[i][j]==1){
            APoints = APoints +3;
        }
        else if(InputArray[i][j]==-1){
            BPoints = BPoints +2;
        }
        else if(InputArray[i][j]==0){
            CPoints =  CPoints +1;
        }
        }

    }

    Array_After_ibraMethod[h] = Compare(APoints, BPoints, CPoints);
    }

    /// to print////
    System.out.println("\n After ibraMethod");

    for (Integer i :Array_After_ibraMethod) {
        System.out.print(i.intValue() + " ");
    }

    return Array_After_ibraMethod;


}

这是比较功能代码

 Compare(int a, int b, int c) {

    int r;

    if ((a > b) && (a > c)) {

        r = 1;
        System.out.println("\n A ");

    } else if ((b > a) && (b > c)) {

        r = -1;
        System.out.println("\n B ");

    } else {

        r = 0;
        System.out.println("\n C");

    }

    return r;

}

1 个答案:

答案 0 :(得分:0)

使用j<InputArray[i].length;代替j<InputArray[h].length; j<InputArray[h].length;可能会为您提供java.lang.ArrayIndexOutOfBoundsException