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 }

 

posted on 2017-12-31 21:58  梧桐雨与荔枝  阅读(244)  评论(0编辑  收藏  举报

导航