-1

私は Java を使用しており、次のような int[][] 配列を持っています。

[ 65][  4]  
[108][ 47]  
[ 32][279]  
[103][ 26]  
[111][138]  
[100][ 63]  
[112][ 33] ...etc.

そして、2 番目の列の値に基づいて、最小から最大の順に並べ替える必要があります。私はこのコードを試しました。これもこのウェブサイトにあります:

    print(myArray);
    System.out.println("==========");

    Arrays.sort(myArray, new Comparator<int[]>() {
        @Override
        public int compare(int[] int1, int[] int2)
        {
            Integer number1 = int1[1];
            Integer number2 = int2[1];
            return number1.compareTo(number2);
        }
    });

    print(myArray);

私の印刷方法は次のとおりです。

public static void print(int[][] array) {
    int k = 0;
    while (array[k][0] != 0) {
        System.out.println("[" + array[k][0] + "][" + array[k][1] + "]");
        k++;
    }
}

何があっても、2回目は印刷されないようです。ここで何が間違っているのかわかりません。うまくいけば、それは簡単な修正です:)

4

1 に答える 1

2

print メソッドが間違っているようです (または、提供されたコードではエラーを再現するのに十分ではありません)。コードは初めて出力されますが、その後 ArrayIndexOutOfBoundsException にヒットします (これが実際の問題である場合は、これも取得する必要があります)。

代わりにこの印刷方法を試してみてください。

public static void print(int[][] array) {
    for (int i = 0; i < array.length; i++) {
        System.out.println("[" + array[i][0] + "][" + array[i][1] + "]");
    }
}
于 2012-04-09T15:56:58.633 に答える