2017/12/31Java基础学习——二维数组排序の数组工具类Arrays的方法综合运用
代码如下:
1 import java.util.Arrays; 2 public class HelloWorld { 3 public static void main(String[] args) { 4 // 首先定义一个5X8的二维数组,然后使用随机数填充满。 5 // 借助Arrays的方法对二维数组进行排序。 6 7 //Method 1 8 // int[][] a = new int[5][8]; 9 // int[] b = new int[a.length * a[0].length]; 10 // int k = 0; 11 // System.out.println("打印排序前的二维数组 = "); 12 // for (int i = 0; i < a.length; i++) { 13 // for (int j = 0; j < a[i].length; j++) { 14 // a[i][j] = (int)(Math.random() * 100); 15 // b[k++] = a[i][j];//将二维数组值赋给一维数组b 16 // } 17 // System.out.println(Arrays.toString(a[i])); 18 // } 19 // 20 // System.out.println("排完顺序后的二维数组 = "); 21 // Arrays.sort(b);//排序一维数组b 22 // k = 0; 23 // for (int i = 0; i < a.length; i++) { 24 // for (int j = 0; j < a[i].length; j++) { 25 // a[i][j] = b[k++];//将数组b值传给数组a 26 // } 27 // System.out.println(Arrays.toString(a[i])); 28 // } 29 // 30 //Method 2 31 int[][] a = new int[5][8]; 32 33 for (int i = 0; i < a.length; i++) {//给数组a赋值 34 for (int j = 0; j < a[i].length; j++) { 35 a[i][j] = (int)(Math.random() * 100); 36 } 37 } 38 39 System.out.println("打印排序前的二维数组 = "); 40 for (int[] each : a) {//输出数组a 41 System.out.println(Arrays.toString(each)); 42 }//规律总结:『:』前的为一维数组变量,引号后的为二维数组名,最后输出的为一维数组名。 43 44 int[] b = new int[a.length * a[0].length]; 45 for (int i = 0; i < a.length; i++) {//将二维数组a复制给一维数组b 46 System.arraycopy(a[i], 0, b, a[i].length * i, a[i].length);//这里的a[i]等价于一维数组名 47 } 48 Arrays.sort(b);//对一维数组b进行排序 49 50 for (int i = 0; i < a.length; i++) {//将一维数组b复制给二维数组a 51 System.arraycopy(b, a[i].length * i, a[i], 0, a[i].length); 52 } 53 54 System.out.println("打印排序后的二维数组 = "); 55 for (int[] each : a) {//输出数组a 56 System.out.println(Arrays.toString(each)); 57 } 58 59 } 60 }