1 private static void PrintMatrix(){
2 //region 使用随机数构建矩阵(二维数组)
3 long seed=System.currentTimeMillis();
4 Random objRandom = null;
5 int arrLength=4;
6 int maxNumber=100;
7 int[][] arr=new int[arrLength][arrLength];
8 for(int i=0;i<arrLength;i++){
9 for(int j=0;j<arrLength;j++){
10 int tempNum =0;
11 while (tempNum==0){
12 objRandom = new Random(seed);
13 tempNum = objRandom.nextInt(maxNumber);
14 if(tempNum==0){
15 seed=System.currentTimeMillis();
16 }
17 }
18 seed=seed+tempNum;
19 arr[i][j]=tempNum;
20 }
21 }
22 //endregion
23
24 //region 输出矩阵(二维数组)
25 System.out.print("\r\n");
26 System.out.print("\r\n");
27 for(int i=0;i<arrLength;i++){
28 System.out.print("\t");
29 for(int j=0;j<arrLength;j++){
30 System.out.print(arr[i][j]);
31 System.out.print("\t");
32 }
33 System.out.print("\r\n");
34 }
35 System.out.print("\r\n");
36 System.out.print("\r\n");
37 //endregion
38
39 //region 螺旋输出矩阵内容
40 int up,down,left,right;
41 up=0;
42 down=arrLength-1;
43 left=0;
44 right=arrLength-1;
45
46 boolean s1=false,s2=false;
47 while (true){
48 //从左往右
49 if(left<=right){
50 for(int i=left;i<=right;i++){
51 System.out.print(arr[up][i]+"\t");
52 }
53 up++;
54 }else{
55 s1=true;
56 up++;
57 }
58
59 //从上往下
60 if(up<=down){
61 for(int i=up;i<=down;i++){
62 System.out.print(arr[i][right]+"\t");
63 }
64 right--;
65 }else{
66 s2=true;
67 right--;
68 }
69
70
71 //从右往左
72 if(left<=right){
73 for(int i=right;i>=left;i--){
74 System.out.print(arr[down][i]+"\t");
75 }
76 down--;
77 }else{
78 s1=true;
79 down--;
80 }
81
82 //从下往上
83 if(up<=down){
84 for(int i=down;i>=up;i--){
85 System.out.print(arr[i][left]+"\t");
86 }
87 left++;
88 }else{
89 s2=true;
90 left++;
91 }
92
93 if(s1==true && s2==true){
94 break;
95 }
96 }
97 //endregion
98 }