gpt4 book ai didi

java - 使用 Arrays.sort 按最后一行对二维数组进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:44 24 4
gpt4 key购买 nike

是否可以在 Java 中使用 Arrays.sort(,) 按最后一行对二维数组进行排序。以下代码片段非常适合按最后一列排序,但似乎无法调整以按最后一行排序。

我的第一个想法是使用将列转换为行,进行排序,然后将行转换为列。对于非常大的阵列,还有更好的方法吗?

int[][] twoDim = { {1, 2, 3}, {3, 7, 11}, {8, 9, 16}, {4, 2,8}, {5, 3, 9} };
Arrays.sort(twoDim, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return ((Integer) o1[2]).compareTo(o2[2]);
}
});

让我们详细说明整个情况:这是我的数组初始化时我所在的位置,按行和列你可以想象这个数据集如下:


{1, 2, 3}, //first row with three columns<br/>
{3, 7, 11}, //second row with three columns<br/>
{8, 9, 16},<br/>
{4, 2, 8},<br/>
{5, 3, 9} //last row with three columns<br/>

按最后一行排序意味着重新排列第一列和第二列的位置,因为 5 大于 3。所以在重新排列数据集之后,它看起来像:

2, 1, 3<br/>
7, 3, 11<br/>
9, 8, 16<br/>
2, 4, 8<br/>
3, 5, 9 //now it's ordered by last row (first and second column have changed they position, by chance third column is in a right place already)

最佳答案

如果我正确理解列和行的含义,则无法回答此问题。

如果你这样看数据集:

1, 2, 3
3, 7, 11
8, 9, 16
4, 2, 8
5, 3, 9

现在,如果您按最后一行对这些进行排序,您会得到以下结果:

{2, 7, 9, 2, 3}, {1,3,8,4,5}, {3, 11, 16, 8, 9}

如果您将 4, 2, 8 行替换为 5,3,9 行,显然情况不会如此。因此,您必须提出一个标准顺序,或者找到一种不同的方法来解决您面临的实际问题。

如果您正在处理矩阵,我强烈推荐 library .

关于java - 使用 Arrays.sort 按最后一行对二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com