public class SpiralMatrix { public static void main(String[] args) { int[][] matrix = new int[7][7]; int top = 0; int bottom = matrix.length - 1; int left = 0; int right = matrix[0].length - 1; int index = 1; while (left <= right && top <= bottom) { for (int col = left; col <= right; col++) { matrix[top][col] = index++; } top++; for (int row = top; row <= bottom; row++) { matrix[row][right] = index++; } right--; for (int col = right; col >= left ; col--) { matrix[bottom][col] = index++; } bottom--; for (int row = bottom; row >= top ; row--) { matrix[row][left] = index++; } left++; } for (int row = 0; row < matrix.length; row++) { for (int col = 0; col < matrix[0].length; col++) { System.out.printf("%02d ", matrix[row][col]); } System.out.println(); } // result: // 01 02 03 04 05 06 07 // 24 25 26 27 28 29 08 // 23 40 41 42 43 30 09 // 22 39 48 49 44 31 10 // 21 38 47 46 45 32 11 // 20 37 36 35 34 33 12 // 19 18 17 16 15 14 13 } }