java – 基于一行数据对二维数组进行排序
发布时间:2020-12-15 08:48:36 所属栏目:Java 来源:网络整理
导读:我不确定这个标题是否正确地表明了我想要问的问题.假设我有一个二维int数组,如下所示: int[][] x={{1,7,6},{2,4,8}}; 现在我想按升序对第一行进行排序,第二行中的数据必须在排序后位于同一列中,即排序后,数组应如下所示: x={{1,6,7},8,4}} 做正确的方法是
我不确定这个标题是否正确地表明了我想要问的问题.假设我有一个二维int数组,如下所示:
int[][] x={{1,7,6},{2,4,8}}; 现在我想按升序对第一行进行排序,第二行中的数据必须在排序后位于同一列中,即排序后,数组应如下所示: x={{1,6,7},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,8},4}] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |