Transpose a 2D Array in Java

Transpose a 2D Array in Java

Title: Transpose a 2D Array in Java

In Java, transposing a 2D array involves converting its rows into columns and vice versa. This operation is commonly used in mathematics and computer science for various applications, such as matrix manipulation and image processing. In this blog post, we will explore how to transpose a 2D array using Java programming language.

What is Transpose of a Matrix?

The transpose of a matrix is obtained by swapping its rows with columns. If we have an ( m \times n ) matrix, the transpose of this matrix will be an ( n \times m ) matrix. For example, consider the following matrix:

 A = \begin{bmatrix}1 & 2 & 3\\4 & 5 & 6\\ \end{bmatrix}

The transpose of matrix A, denoted as A^T, will be:

  A^T = \begin{bmatrix}1 & 4\\2 & 5\\3 & 6\\ \end{bmatrix}

Implementing Transpose in Java

Let’s dive into the Java implementation of transposing a 2D array. Below is a Java program that demonstrates how to transpose a given 2D array:

import java.util.*;

public class Transpose2DArray {

     * Transpose the given 2D array.
     * @param matrix The 2D array to transpose.
     * @return The transposed 2D array.
    public static int[][] transpose(int[][] matrix) {
        int rows = matrix.length;
        int columns = matrix[0].length;
        int[][] result = new int[columns][rows];

        // Iterate through the original matrix
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < columns; j++) {
                // Swap the row and column indices for transposition
                result[j][i] = matrix[i][j];

        return result;

     * Print the elements of a 2D array.
     * @param array The 2D array to print.
    public static void printArray(int[][] array) {
        for (int[] row : array) {
            for (int num : row) {
                System.out.print(num + " ");

     * Main method to test the transpose method.
     * @param args Command line arguments (not used).
    public static void main(String[] args) {
        // Create an example 2D array
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6}

        System.out.println("Original Matrix:");

        // Transpose the matrix
        int[][] transposedMatrix = transpose(matrix);

        System.out.println("Transposed Matrix:");

Explanation of the Program

  1. transpose(int[][] matrix) Method: This method takes a 2D array matrix as input and returns its transpose. It creates a new 2D array result with dimensions swapped (columns become rows and vice versa). Then, it copies the elements from the original matrix to the transposed matrix by swapping the row and column indices.
  2. printArray(int[][] array) Method: This method is used to print the elements of a 2D array. It iterates through each row and column of the array and prints the elements.
  3. main Method: In the main method, we create an example 2D array matrix with dimensions ( 2 \times 3 ). We print the original matrix, then call the transpose method to get the transposed matrix, and finally print the transposed matrix.

Example Execution

Let’s see the output of the program for the matrix:

 A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6\\ \end{bmatrix}

The program will output:

Output – Tranpose Array
Original Matrix:
1 2 3 
4 5 6 
Transposed Matrix:
1 4 
2 5 
3 6 

Uses and Applications

  1. Solving Linear Equations: Transpose is used in solving systems of linear equations.AT=A−1.
  2. Data Manipulation: In data science and machine learning, transposing matrices is common for data manipulation and operations.


In this blog post, we have learned how to transpose a 2D array in Java. Transposing a matrix involves swapping its rows with columns, and we achieved this by iterating through the elements of the original matrix and copying them to a new matrix with swapped dimensions. This operation is useful in various applications where matrix manipulation is required.

Now you have a clear understanding of how to transpose a 2D array using Java. Feel free to explore more about matrix operations and Java programming to enhance your skills further!

Latest Posts: