三月 14, 2019

java中二维数组的排序

  首先定义一个5X8的二维数组,然后使用随机数填充满。
借助Arrays的方法对二维数组进行排序。
参考思路:
先把二维数组使用System.arraycopy进行数组复制到一个一维数组
然后使用sort进行排序
最后再复制回到二维数组。

关于随机数
0-100的 随机整数的获取办法有多种,下面是参考办法之一:

 

import java.util.Arrays;
 
public class TwoDimenSort {
    public static void main(String[] args) {
        int xLen = 5;
        int yLen = 8;
        int[][] a = new int[xLen][yLen];
        //使用随机数填充二维数组
        for(int i=0;i<xLen;i++) {
            for(int j=0;j<yLen;j++) {
                a[i][j] = (int)(Math.random() * 100);
            }
        }
        //复制二维数组到一维数组
        int[] b = new int[xLen * yLen];
        int k = 0;
        for(int i=0;i<xLen;i++) {
            for(int j=0;j<yLen;j++) {
                b[k++] = a[i][j];
            }
        }
        System.out.println("排序前:");
        for(int i=0;i<xLen;i++) {
            System.out.println(Arrays.toString(a[i]));
        }
        //调用Arrays中的sort方法
        Arrays.sort(b);
        //将排序后的值复制回二维数组
        k = 0;
        for(int i=0;i<xLen;i++) {
            for(int j=0;j<yLen;j++) {
                a[i][j] = b[k++];
            }
        }
        System.out.println("排序后:");
        for(int i=0;i<xLen;i++) {
            System.out.println(Arrays.toString(a[i]));
        }
    }
 
}