Java:根据第二列的值对2D数组进行排序
我使用的是Java,我有一个int[][]数组,如下所示:Java:根据第二列的值对2D数组进行排序,java,arrays,sorting,Java,Arrays,Sorting,我使用的是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, n
[ 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);
不管怎样,它似乎不会再打印第二次。我只是不确定我做错了什么。希望这只是一个简单的修复方法:看起来您的打印方法不好,或者您提供的代码不足以重现您的错误。您的代码第一次打印,但随后出现ArrayIndexOutOfBoundsException,如果这是实际问题,您也应该得到它 试试这种打印方法吧,它对我很有效
public static void print(int[][] array) {
for (int i = 0; i < array.length; i++) {
System.out.println("[" + array[i][0] + "][" + array[i][1] + "]");
}
}
比较中的字母1和字母2是什么。。。方法?可能是打字错误的重复。他的原始应用程序可能是对字符数组进行排序。如果无法编译,您是如何尝试提供的代码的?字母1和字母2实际上不在范围内。我想你需要1号和2号来固定字母/数字。很抱歉。阿兰是对的,它实际上是在对字符数组进行排序。第二列是文本文件中出现的次数。啊,我想知道这是否是我的打印方法。你看,问题是在数组实现时,我不知道文本中的字符数量。所以我最后也得到了一堆[0][0]。我想现在我知道分拣工作了。是的,分拣很好:-没问题!我很高兴能帮助您:-
public static void print(int[][] array) {
for (int i = 0; i < array.length; i++) {
System.out.println("[" + array[i][0] + "][" + array[i][1] + "]");
}
}