publicclassSpiralMatrix{publicstaticvoidmain(String[] args){int n =10;SpiralMatrix s =newSpiralMatrix();int[][] data = s.createMatrix();for(int i=0;i<n;i++){for(int j=0;j<n;j++){System.out.print(data[i][j]+"\t");}System.out.println();}}/**
* n阶方阵
* @param n 矩阵的行数
* @return matrix 矩阵
*/privateint[][]createMatrix(int n){//前进方向:右->下->左->上int[][] matrix =newint[n][n];int right =1, down =2, left =3, up =4;int direction = right;int num = n * n, i =0, j =0;for(int p=1;p<=num;p++){
matrix[i][j]= p;if(direction == right){//向右if(j+1< n && matrix[i][j+1]==0){//判断是否到达右边界
j++;}else{//到达右边界向下走
i++;
direction = down;continue;}}elseif(direction == down){if(i+1< n && matrix[i+1][j]==0){
i++;}else{
j--;
direction = left;continue;}}elseif(direction == left){if(j-1<0&& matrix[i][j-1]==0){
j--;}else{
i--;
direction = up;continue;}}elseif(direction == up){if(i-1<0&& matrix[i-1][j]==0){
i--;}else{
j++;
direction = right;continue;}}}return matrix;}}