我有一个2D数组,我想根据第二列进行排序.第一列应保持与第二列配对.
2D阵列最初如下(2x10矩阵):
0 10
1 9
2 9
3 9
4 15
5 10
6 4
7 8
8 11
9 12
Run Code Online (Sandbox Code Playgroud)
我希望上面的2D数组像这样排序:
4 15
9 12
8 11
0 10
5 10
1 9
2 9
3 9
7 8
6 4
Run Code Online (Sandbox Code Playgroud)
现在,我尝试调整答案:将基于一列的二维数组排序到此代码中:
Arrays.sort(theArray, new Comparator<Integer[]>()
{
@Override
public int compare(Integer[] int1, Integer[] int2)
{
Integer numOfKeys1 = int1[1];
Integer numOfKeys2 = int2[1];
return numOfKeys1.compareTo(numOfKeys2);
}
});
Run Code Online (Sandbox Code Playgroud)
但是,它似乎根本不对数组进行排序.在调用sort()函数后打印数组时,数组的初始顺序.
我也尝试从这里调整答案:在java中排序字符串的2D数组,但我遇到了同样的问题.
在调整这些解决方案时,我是否犯了一些致命错误,或者我的代码是否有效?
另外,我将如何按降序排序此数组?我会将compare()中的return语句替换为此行吗?
return -numOfKeys2.compareTo(numOfKeys1);
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.谢谢!
编辑:只需发布我的其余代码,看看问题是否在其他地方. …