Java Program to Swap Diagonals of a Matrix

In this article we are going to see how we can write a program to swap the diagonal elements of a matrix in JAVA language.

Java Program to Swap Diagonals of a Matrix

A 3*3 Matrix is having 3 rows and 3 columns where this 3*3 represents the dimension of the matrix. Means there are 3*3 i.e. total 9 elements in a 3*3 Matrix.

Let’s understand it in more simpler way.

                   | A00   A01   A02 |
Matrix A =  | A10   A11   A12 |
                   | A20   A21   A22 | 3*3
  • Matrix A represents a 3*3 matrix.
  • A‘ represents the matrix element
  • Aij‘ represents the matrix element at it’s matrix position/index.
  • i‘ represents the row index
  • j‘ represents the column index
  • Means A00=Aij  where i=0 and j=0,  A01=aij where i=0 and j=1 and like this.
  • Here we have started row value from 0 and column value from 0.

Let’s see different ways to swap two diagonals.

Method-1: Java Program to Swap Diagonals of a Matrix By Static Initialization of Array Elements

Approach:

  • Initialize an array of size 3×3 with values.
  • Show the array to the user.
  • Then swapping will take place only in first and last row(Also first element and last element). As middle row center element does not need to be swapped as after swapping also that will be in the same place.
  • Print the matrix.

Program:

import java.util.Scanner;

public class Matrix
{
    public static void main(String args[])
    {
        // Initializing the 3X3 matrix i.e. 2D array
        int arr[][] = {{19,25,32},{40,54,62},{70,20,60}}, mainSum = 0, counterSum = 0;
        int row, col;

        System.out.print("The matrix elements are : ");
        printMatrix(arr);
        System.out.print("After Swapping Diagonal Elements : ");
        swapDiagonals(arr);
        
    }

    // Method to print the matrix
    static void printMatrix(int arr[][])
    {
        int row, col;
        // Loop to print the elements
        for(row=0;row<3;row++)
        {
            // Used for formatting
            System.out.print("\n");
            for(col=0;col<3;col++)
            {
                System.out.print(arr[row][col]+" ");
            }
        }
        System.out.print("\n");
    }
    
    // Method to swap the diagonals
    static void swapDiagonals(int arr[][])
    {
        int row, col;
        // Swaps the diagonal elements
        for(row=0;row<3;row++)
            if(row!=3/2)
            {
                int temp = arr[row][row];
                arr[row][row] = arr[row][2-row];
                arr[row][2-row] = temp;
            }
        
        printMatrix(arr);
    }

}

Output:

The matrix elements are : 
19 25 32 
40 54 62 
70 20 60 
After Swapping Diagonal Elements : 
32 25 19 
40 54 62 
60 20 70

Method-2: Java Program to Swap Diagonals of a Matrix By Dynamic Initialization of Array Elements

Approach:

  • Initialize an array of size 3×3.
  • Ask the user for input.
  • Use two for loops to iterate the rows and columns to input the array elements.
  • Show the array to the user.
  • Then swapping will take place only in first and last row(Also first element and last element). As middle row center element does not need to be swapped as after swapping also that will be in the same place.
  • Print the matrix.

Program:

import java.util.Scanner;

public class Matrix
{
    public static void main(String args[])
    {
        //Scanner class to take input
        Scanner scan = new Scanner(System.in);

        // Initializing the 3X3 matrix i.e. 2D array
        int arr[][] = new int[3][3];
        int row, col ;

        System.out.println("Enter the 3x3 matrix elements :");
        // Loop to take user input
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
                arr[row][col] = scan.nextInt();

        System.out.print("The matrix elements are:");
        printMatrix(arr);
        System.out.print("\nAfter Swapping Diagonal Elements");
        swapDiagonals(arr);
        
    }

    // Function to print the matrix
    static void printMatrix(int arr[][])
    {
        int row, col;
        // Loop to print the elements
        for(row=0;row<3;row++)
        {
            // Used for formatting
            System.out.print("\n");
            for(col=0;col<3;col++)
            {
                System.out.print(arr[row][col]+" ");
            }
        }
    }
    
    // Function to swap the diagonals
    static void swapDiagonals(int arr[][])
    {
        int row, col;
        // Swaps the diagonal elements
        for(row=0;row<3;row++)
            if(row!=3/2)
            {
                int temp = arr[row][row];
                arr[row][row] = arr[row][2-row];
                arr[row][2-row] = temp;
            }
        
        printMatrix(arr);
    }

}


Output:

Enter the 3x3 matrix elements : 1 2 3 4 5 6 9 8 7
The matrix elements are:
1 2 3 
4 5 6 
9 8 7 
After Swapping Diagonal Elements
3 2 1 
4 5 6 
7 8 9

Are you new to the java programming language? We recommend you to ace up your practice session with these Basic Java Programs Examples