针对二维数组的某一项对二维的数组排序

针对二维数组的某一项对二维的数组排序我的思路是降维排序



import java.util.Arrays;
public class beibaowenti {
    public static void main(String[] args) {

        int things[][] = {{4, 50}, {6, 60}, {7, 100}, {8, 70}};//定义一个二维数组并赋值
        int  a[]=new int[things.length];//用于降维
        int  b[][]=new int[1][1];//还原时需要用到的中转数组
        


      //首先时降维,将要针对的那个维度降维成一维数组
       for(int i=0;i<things.length;i++)
       {
           a [i]=things[i][1];
       }
       Arrays.sort(a);//使用java库的排序函数排序

       //还原为二维数组的排序
       for (int j=0;j<things.length;j++) {
          for (int m=0;m<things.length;m++)
          {
              if(a[j]==things[m][1])
              {
                  b[0]=things[j];//由于这里还原时是地址赋值,
                  //为了避免地址覆盖所以需要一个中间量存储被换数组的地址
                  things[j]=things[m];
                  things[m]=b[0];
                  break;
              }
          }
       }

       //验证排序代码
       for(int j=0;j<things.length;j++)
       {
           System.out.println(things[j][1]);
       }


    }
}
发布了73 篇原创文章 · 获赞 1 · 访问量 2466

猜你喜欢

转载自blog.csdn.net/c1776167012/article/details/104858314