小编Dra*_*ake的帖子

基于列对2D整数数组进行排序

我有一个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)

任何帮助将不胜感激.谢谢!

编辑:只需发布我的其余代码,看看问题是否在其他地方. …

java arrays sorting

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

arrays ×1

java ×1

sorting ×1