我正在尝试在 java 中对二维数组进行排序。第一列是一个 int,描述了一种权限,第二列是另一个整数,描述了一个应用程序的类别。我想对第一列进行排序,使第二列保持原样。因此,例如,如果我将 [0][0] 作为参数,我将返回该类别中最常用的权限。
对不起我的英语不好,谢谢你的帮助
我正在尝试在 java 中对二维数组进行排序。第一列是一个 int,描述了一种权限,第二列是另一个整数,描述了一个应用程序的类别。我想对第一列进行排序,使第二列保持原样。因此,例如,如果我将 [0][0] 作为参数,我将返回该类别中最常用的权限。
对不起我的英语不好,谢谢你的帮助
使用Arrays#sort(T[],Comparator<? super T>)
功能
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];
}
});
希望这可以帮助:
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]);
}
}