gpt4 book ai didi

java - 根据一行数据对二维数组进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:29:48 25 4
gpt4 key购买 nike

我不确定标题是否正确地暗示了我想问的问题。假设我有一个二维 int 数组,如下所示:

int[][] x={{1,7,6},{2,4,8}};

现在我想对第一行进行升序排序,排序后第二行的数据必须在同一列,即排序后的数组应该是这样的:

x={{1,6,7},{2,8,4}}

正确的做法是什么?

最佳答案

这可以通过实现您自己的排序例程来完成,但更好的方法是重构。

尝试将数据封装为数字对的数组,每一对都包装在自己的对象中。然后,您可以对第一个值进行排序并访问任一值。

class Pair<T extends Comparable<T>> implements Comparable<Pair<T>> {
final T a;
final T b;

public Pair ( T a, T b ) {
this.a = a;
this.b = b;
}

@Override
public int compareTo(Pair<T> o) {
// Comparison on 'a' only.
return a.compareTo(o.a);
}

@Override
public String toString () {
return "{" + a + "," + b + "}";
}
}

public static void main(String args[]) {
Pair[] pairs = {
new Pair(1,2),
new Pair(7,4),
new Pair(6,8),
};
System.out.println("Before: "+Arrays.toString(pairs));
Arrays.sort(pairs);
System.out.println("After: "+Arrays.toString(pairs));
}

打印

Before: [{1,2}, {7,4}, {6,8}]
After: [{1,2}, {6,8}, {7,4}]

关于java - 根据一行数据对二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13841028/

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