This type of array has two dimensions – X and Y.

arr[n][m] = n(row) , m(column)

Create 2D array

Generally 2D array has many ways to declare and initialize. Let’s some code snippets to understand concept of it.

class const2D {
public static void main(String[] args) {
 
int a[][]={{10,20},{30,40}};
 /* 2D array will
     * 10 20
     * 30 40
     */
 
 for(inti=0;i<2;i++){
    for(int j=0;j<2;j++){
System.out.println(a[i][j]);
    }
 }  
}
}
output

Let’s see some another example of 2D array declaration.

intarr[][]=new int[m][n];

m=row,n=column number

public class const2D_1 {
    public static void main(String[] args) {
      // declare 2D array ‘arr’ -> size 2X2
intarr[][]=new int[2][2];
        // initialize values into 2D array indexes
arr[0][0]=10;
arr[0][1]=20;
arr[1][0]=-9;
arr[1][1]=45;
      // displays 2D array
      for(inti=0;i<2;i++){
        for(int j=0;j<2;j++){
System.out.print(“\t”+arr[i][j]);
 
        }
      }
    }
}
output

Basic 2D array operations list

Addition

Image source: Matrix: Addition & Subtraction (solutions, examples, videos) (onlinemathlearning.com)

Subtraction

Image source: Matrix: Addition & Subtraction (solutions, examples, videos) (onlinemathlearning.com)

Multiplication

Image source: A Complete Beginners Guide to Matrix Multiplication for Data Science with Python Numpy | by GreekDataGuy | Towards Data Science

Division

Process same as addition/subtraction.

2D array operations related to matrix operations.

Write a Program to find the addition of two matrices.

import java.util.Scanner;
 
class code3{
                    public static void main(String[] args) {
                                         Scanner sc=new Scanner(System.in);
inti,j,n,m;//i=row number,j=column number
System.out.println(“\n enter i value : “);
        n=sc.nextInt();
System.out.println(“\n enter j value : “);
        m=sc.nextInt();
int array1[][]=new int[n][m];
int array2[][]=new int[n][m];
int array3[][]=new int[n][m];
 
System.out.println(“Enter array-1 values “);
 
         for(i=0;i<n;i++){
            for(j=0;j<m;j++){
System.out.println(“enter element: position “+i+” “+j);
                array1[i][j] = sc.nextInt();
            }
        }
System.out.println(“Enter array-2 values “);
 
         for(i=0;i<n;i++){
            for(j=0;j<m;j++){
System.out.println(“enter element: position “+i+” “+j);
                array2[i][j] = sc.nextInt();
            }
        }
System.out.println(“array-1 array is “);
        for(i=0;i<n;i++){
            for(j=0;j<m;j++){
                   
System.out.println(“\t”+array1[i][j]);
            }
        }
System.out.println(“array-2 array is “);
        for(i=0;i<n;i++){
            for(j=0;j<m;j++){
 
System.out.println(“\t”+array2[i][j]);
            }
        }
     for(i=0;i<n;i++){
            for(j=0;j<m;j++){
               array3[i][j]=array1[i][j]+array2[i][j];
            }
        }
System.out.println(“addition(array3) of array-1 and array-2 is : “);
                for(i=0;i<n;i++){
            for(j=0;j<m;j++){
System.out.println(“\t”+array3[i][j]);
            }
        }
 
                    }
}
output

Write a Program to find the multiplication of two matrices.

import java.util.Scanner;
 
class code4{
                    public static void main(String[] args) {
                                         Scanner sc=new Scanner(System.in);
inti,j,n,m,k=0,sum=0;//n=row number,m=column number
System.out.println(“\n enter n value : “);
        n=sc.nextInt();
System.out.println(“\n enter m value : “);
        m=sc.nextInt();
int array1[][]=new int[n][m];
int array2[][]=new int[n][m];
int array3[][]=new int[n][m];
 
System.out.println(“Enter array-1 values “);
 
         for(i=0;i<n;i++){
            for(j=0;j<m;j++){
System.out.println(“enter element: position “+i+” “+j);
                array1[i][j] = sc.nextInt();
            }
        }
System.out.println(“Enter array-2 values “);
 
         for(i=0;i<n;i++){
            for(j=0;j<m;j++){
System.out.println(“enter element: position “+i+” “+j);
                array2[i][j] = sc.nextInt();
            }
        }
System.out.println(“array-1 array is “);
        for(i=0;i<n;i++){
            for(j=0;j<m;j++){
                   
System.out.println(“\t “+array1[i][j]);
            }
 
        }
System.out.println(“array-2 array is “);
        for(i=0;i<n;i++){
            for(j=0;j<m;j++){
 
System.out.println(“\t”+array2[i][j]);
            }
        }
 
     for(i=0;i<n;i++){
            for(j=0;j<m;j++){
                //array3[i][j]=0;
                sum=0;
              for(k=0;k<m;k++){
                sum=sum+array1[i][k]*array2[k][j];
                array3[i][j]=sum;
              }
            }
        }
 
System.out.println(“multiplication(array3) of array-1 and array-2 is : “);
                for(i=0;i<n;i++){
            for(j=0;j<m;j++){
System.out.println(“\t”+array3[i][j]);
            }
        }
 
                    }
}
output

Write a Program to the Subtraction of two matrices.

import java.util.Scanner;
 
class code5{
                    public static void main(String[] args) {
                                         Scanner sc=new Scanner(System.in);
inti,j,n,m;//i=row number,j=column number,p=i*j
System.out.println(“\n enter i value : “);
        n=sc.nextInt();
System.out.println(“\n enter j value : “);
        m=sc.nextInt();
int array1[][]=new int[n][m];
int array2[][]=new int[n][m];
int array3[][]=new int[n][m];
 
System.out.println(“Enter array-1 values “);
 
         for(i=0;i<n;i++){
            for(j=0;j<m;j++){
System.out.println(“enter element: position “+i+” “+j);
                array1[i][j] = sc.nextInt();
            }
        }
System.out.println(“Enter array-2 values “);
 
         for(i=0;i<n;i++){
            for(j=0;j<m;j++){
System.out.println(“enter element: position “+i+” “+j);
                array2[i][j] = sc.nextInt();
            }
        }
System.out.println(“array-1 array is “);
        for(i=0;i<n;i++){
            for(j=0;j<m;j++){
                   
System.out.println(“\t”+array1[i][j]);
            }
        }
System.out.println(“array-2 array is “);
        for(i=0;i<n;i++){
            for(j=0;j<m;j++){
 
System.out.println(“\t”+array2[i][j]);
            }
        }
     for(i=0;i<n;i++){
            for(j=0;j<m;j++){
               array3[i][j]=array1[i][j]-array2[i][j];
            }
        }
System.out.println(“subtraction(array-3) of array-1 and array-2 is : “);
                for(i=0;i<n;i++){
            for(j=0;j<m;j++){
System.out.println(“\t”+array3[i][j]);
            }
        }
 
                    }
}
output

Here, the below problem we converts 2D array into 1D array. Then we traverse whole 1D array and sum of all elements.

Write a Program to find the sum of all elements in a 2D array or Matrix.

import java.util.Scanner;
 
class code2{
                    public static void main(String[] args) {
                                         Scanner sc=new Scanner(System.in);
inti,j,n,m,a=0,sum=0;//i=row number,j=column number,p=i*j
System.out.println(“\n enter i value : “);
        n=sc.nextInt();
System.out.println(“\n enter j value : “);
        m=sc.nextInt();
int array[][]=new int[n][m];
 
 
         for(i=0;i<n;i++){
            for(j=0;j<m;j++){
System.out.println(“enter element: position “+i+” “+j);
                array[i][j] = sc.nextInt();
            }
        }
System.out.println(“\n 2D array is “);
        for(i=0;i<n;i++){
            for(j=0;j<m;j++){
                    a=array[i][j];
                    sum = a+sum;
System.out.println(“\t”+array[i][j]);
            }
        }
System.out.println(“\n sum of all elements: “+sum);
 
                    }
}
output