-1

我正在使用 Java,我有一个 int[][] 数组,如下所示:

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

我需要根据第二列的值从最小到最大排序。我试过这段代码,也在这个网站上找到:

    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++;
    }
}

无论如何,它似乎都没有打印第二次。我只是不确定我在这里做错了什么。希望这只是一个简单的修复:)

4

1 回答 1

2

您的打印方法似乎很糟糕(或者您提供的代码不足以重现您的错误)。您的代码第一次打印,但随后遇到 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 回答