前言
编写Java代码,突然想对整型二维数组进行排序,按第一列排序
实例
编写一个函数进行排序
int intervals[][] = {{4,6,5},{1,3,7},{8,10,45},{56,15,18},{4,7,5}};
System.out.println("整型二维数组排序前");
for (int i = 0; i < intervals.length; i++){
for (int j = 0; j < 3; j++){
System.out.print(intervals[i][j]+" ");
}
System.out.println();
}
// 重写Arrays.sort()方法
// 二维数组排序,根据第一列排序,o1-o2 ,即升序;反之 o2-o1 就降序
Arrays.sort(intervals, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
//这里根据第一列进行排序
return o1[0] - o2[0];
}
});
System.out.println("排序后");
for (int i = 0; i < intervals.length; i++){
for (int j = 0; j < 3; j++){
System.out.print(intervals[i][j] +" ");
}
System.out.println();
}
输出数据为:
整型二维数组排序前
4 6 5
1 3 7
8 10 45
56 15 18
4 7 5
排序后
1 3 7
4 6 5
4 7 5
8 10 45
56 15 18
总结
- Arrays.sort()方法的使用
- 可以自己编写排序函数,比大小,换位置
- 有想法多尝试,Java代码完整性很强