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(" "); 26 System.out.print(" "); 27 for(int i=0;i<arrLength;i++){ 28 System.out.print(" "); 29 for(int j=0;j<arrLength;j++){ 30 System.out.print(arr[i][j]); 31 System.out.print(" "); 32 } 33 System.out.print(" "); 34 } 35 System.out.print(" "); 36 System.out.print(" "); 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]+" "); 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]+" "); 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]+" "); 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]+" "); 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 }