/** * @author lautturi.com * Java example: rotate a matrix 90 degrees clockwise in java (Function) */ import java.util.*; public class Lautturi { // rotate a matrix 90 degrees clockwise in java static int[][] rotateMatrix(int[][] matrix) { if(matrix == null) return null; int rows = matrix.length; int cols = rows > 0 ? matrix[0].length : 0; if (rows == 0 || cols == 0) return null; int[][] newMatrix = new int[cols][rows]; for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) { newMatrix[i][j] = matrix[j][i]; } reverseArray(newMatrix[i]); } return newMatrix; } static void reverseArray(int[] arr) { for (int i = 0; i < arr.length / 2; i++) { int temp = arr[i]; arr[i] = arr[arr.length - i - 1]; arr[arr.length - i - 1] = temp; } } public static void main(String[] args) { int matrix[][] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; // print the matrix/2d-array in java for (int[] subarray : matrix) { for (int element : subarray) { System.out.printf("%5d", element); } System.out.println(); } // rotate a matrix 90 degrees clockwise in java int[][] newMatrix = rotateMatrix(matrix); // if(newMatrix != null) { // // } System.out.println("-----new Matrix--------"); // print the matrix/2d-array in java for (int[] subarray : newMatrix) { for (int element : subarray) { System.out.printf("%5d", element); } System.out.println(); } } }
output:
1 2 3 4 5 6 7 8 9 10 11 12 -----new Matrix-------- 9 5 1 10 6 2 11 7 3 12 8 4