Java中Arrays.sort()对二维数组的进行排序

引言:
  有时候通过做题会发现,如果两者之间存在一一对应关系,此时一个满足升序或降序,而要求另一个也随之变化,与其对应,这是如果利用数组存储,就可以利用Arrays,sort()来进行排序
解释:
  对于一个已定义的二位数组a经行如下规则排序,首先按照每一个对应的一维数组第一个元素进行升序排序(即a[][0]),若第一个元素相等,则按照第二个元素进行升序排序(a[][1])。(特别注意,这里的a[][0]或者a[][1]在java中是不能这么定义的,这里只是想说明是对于某一个一维数组的第0或1个元素进行排序)
应用:
  有两种情况,具体依照下面代码所示:
代码:

 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]){
                   //若a[0] b[0]值相同则比较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 i=0;i<nums.length;i++){
            System.out.println(Arrays.toString(nums[i]));
        }
    }
        

结果:
[1, 3]
[1, 2]
[4, 5]
[3, 7]
分析:
由结果可知,是按每一行第二个元素升序排列,而每一行第一个元素也随之相应变化。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值