java中多维数组的排序
我正在尝试用java对2d数组进行排序。第一列是描述一种权限的int,第二列是描述应用程序类别的另一个整数。 我想对第一列进行排序,使第二列保持原样。 例如,如果我将[0][0]作为参数,我将返回该类别中使用最多的权限 很抱歉我的英语不好,谢谢你的帮助希望这有帮助:java中多维数组的排序,java,arrays,sorting,multidimensional-array,Java,Arrays,Sorting,Multidimensional Array,我正在尝试用java对2d数组进行排序。第一列是描述一种权限的int,第二列是描述应用程序类别的另一个整数。 我想对第一列进行排序,使第二列保持原样。 例如,如果我将[0][0]作为参数,我将返回该类别中使用最多的权限 很抱歉我的英语不好,谢谢你的帮助希望这有帮助: class 2DcolumnComparator implements Comparator { private int columnToSortOn; 2DcolumnComparator
class 2DcolumnComparator implements Comparator {
private int columnToSortOn;
2DcolumnComparator(int columnToSortOn) {
this.columnToSortOn = columnToSortOn;
}
public int compare(Object o1, Object o2) {
String[] row1 = (String[])o1;
String[] row2 = (String[])o2;
return row1[columnToSortOn].compareTo(row2[columnToSortOn]);
}
}
使用
Arrays#sort(T[],Comparator)你可以添加一些你可能已经尝试过的代码吗?它的可能副本可能有助于展示人们将如何使用比较器。例如,Arrays.sort()而Comparator
可能是一种方法(我感觉OP遗漏了一些重要信息),通常最好使用泛型版本。
int array [][] = {{1,11},{2,34},{3,8},{8,4},{7,23}};
java.util.Arrays.sort(array, new java.util.Comparator<int[]>() {
public int compare(int[] a, int[] b) {
return b[0] - a[0];
}
});