我正在使用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++;
}
}
无论如何,它似乎都没有第二次打印。我只是不确定我在这里做错了什么。希望这只是一个简单的解决办法:)
答案 0 :(得分: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] + "]");
}
}