Arrays.sort()对二维数组排序
示例代码一:按照第一维排序
public static void main(String[] args) {
int[][] nums=new int[][]{{1,3},{1,2},{4,5},{3,7}};
//方法一
//compare方法的返回值结果:一个负整数,零,或一个正整数作为第一个参数小于,等于或大于第二个
Arrays.sort(nums,new Comparator<int[]>(){
public int compare(int[] a,int[] b){
if(a[0]==b[0]){
return a[1]-b[1];
}else{
return a[0]-b[0];
}
}
});
//方法二
/*Arrays.sort(nums,(a,b)->a[0]-b[0]);*/
for (int[] num : nums) {
System.out.println(Arrays.toString(num));
}
}
运行结果:
示例代码二:按照第二维排序
public static void main(String[] args) {
int[][] nums=new int[][]{{1,3},{1,2},{4,5},{3,7}};
//方法一
Arrays.sort(nums,new Comparator<int[]>(){
public int compare(int[] a,int[] b){
if(a[1]==b[1]){
return a[0]-b[0];
}else{
return a[1]-b[1];
}
}
});
//方法二
/*Arrays.sort(nums,(a,b)->a[1]-b[1]);*/
for (int[] num : nums) {
System.out.println(Arrays.toString(num));
}
}
运行结果: