Multidimensional Arrays in Java

Array-Basics in Java
Multidimensional Arrays can be defined in simple words as array of arrays. Data in multidimensional arrays are stored in tabular form (in row major order).

Syntax:

data_type[1st dimension][2nd dimension][]..[Nth dimension] array_name = new data_type[size1][size2]….[sizeN];



where:

  • data_type: Type of data to be stored in the array. For example: int, char, etc.
  • dimension: The dimension of the array created.
    For example: 1D, 2D, etc.
  • array_name: Name of the array
  • size1, size2, …, sizeN: Sizes of the dimensions respectively.

Examples:

Two dimensional array:
int[][] twoD_arr = new int[10][20];

Three dimensional array:
int[][][] threeD_arr = new int[10][20][30];

Size of multidimensional arrays: The total number of elements that can be stored in a multidimensional array can be calculated by multiplying the size of all the dimensions.

For example:
The array int[][] x = new int[10][20] can store a total of (10*20) = 200 elements.
Similarly, array int[][][] x = new int[5][10][20] can store a total of (5*10*20) = 1000 elements.



Two – dimensional Array (2D-Array)

Two – dimensional array is the simplest form of a multidimensional array. A two – dimensional array can be seen as an array of one – dimensional array for easier understanding.

Indirect Method of Declaration:

  • Declaration – Syntax:
    data_type[][] array_name = new data_type[x][y];
            For example: int[][] arr = new int[10][20];
            
  • Initialization – Syntax:
    array_name[row_index][column_index] = value;
            For example: arr[0][0] = 1;
            

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

class GFG {
    public static void main(String[] args)
    {
  
        int[][] arr = new int[10][20];
        arr[0][0] = 1;
  
        System.out.println("arr[0][0] = " + arr[0][0]);
    }
}

chevron_right


Output:

arr[0][0] = 1

Direct Method of Declaration:

Syntax:


data_type[][] array_name = {
                             {valueR1C1, valueR1C2, ....}, 
                             {valueR2C1, valueR2C2, ....}
                           };

For example: int[][] arr = {{1, 2}, {3, 4}};

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

class GFG {
    public static void main(String[] args)
    {
  
        int[][] arr = { { 1, 2 }, { 3, 4 } };
  
        for (int i = 0; i < 2; i++)
            for (int j = 0; j < 2; j++)
                System.out.println("arr[" + i + "][" + j + "] = "
                                   + arr[i][j]);
    }
}

chevron_right


Output:



arr[0][0] = 1
arr[0][1] = 2
arr[1][0] = 3
arr[1][1] = 4

Accessing Elements of Two-Dimensional Arrays

Elements in two-dimensional arrays are commonly referred by x[i][j] where ‘i’ is the row number and ‘j’ is the column number.

Syntax:

x[row_index][column_index]

For example:

int[][] arr = new int[10][20];
arr[0][0] = 1;

The above example represents the element present in first row and first column.

Note: In arrays if size of array is N. Its index will be from 0 to N-1. Therefore, for row_index 2, actual row number is 2+1 = 3.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

class GFG {
    public static void main(String[] args)
    {
  
        int[][] arr = { { 1, 2 }, { 3, 4 } };
  
        System.out.println("arr[0][0] = " + arr[0][0]);
    }
}

chevron_right


Output:

arr[0][0] = 1

Representation of 2D array in Tabular Format: A two – dimensional array can be seen as a table with ‘x’ rows and ‘y’ columns where the row number ranges from 0 to (x-1) and column number ranges from 0 to (y-1). A two – dimensional array ‘x’ with 3 rows and 3 columns is shown below:



two-d

Print 2D array in tabular format:

To output all the elements of a Two-Dimensional array, use nested for loops. For this two for loops are required, One to traverse the rows and another to traverse columns.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

class GFG {
    public static void main(String[] args)
    {
  
        int[][] arr = { { 1, 2 }, { 3, 4 } };
  
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 2; j++) {
                System.out.print(arr[i][j] + " ");
            }
  
            System.out.println();
        }
    }
}

chevron_right


Output:

1 2 
3 4

Three – dimensional Array (3D-Array)

Three – dimensional array is a complex form of a multidimensional array. A three – dimensional array can be seen as an array of two – dimensional array for easier understanding.

Indirect Method of Declaration:

  • Declaration – Syntax:
    data_type[][][] array_name = new data_type[x][y][z];
            For example: int[][][] arr = new int[10][20][30];
            
  • Initialization – Syntax:
    array_name[array_index][row_index][column_index] = value;
            For example: arr[0][0][0] = 1;
            

Example:



filter_none

edit
close

play_arrow

link
brightness_4
code

class GFG {
    public static void main(String[] args)
    {
  
        int[][][] arr = new int[10][20][30];
        arr[0][0][0] = 1;
  
        System.out.println("arr[0][0][0] = " + arr[0][0][0]);
    }
}

chevron_right


Output:

arr[0][0][0] = 1

Direct Method of Declaration:

Syntax:


data_type[][][] array_name = {
                              {
                               {valueA1R1C1, valueA1R1C2, ....}, 
                               {valueA1R2C1, valueA1R2C2, ....}
                              },
                              {
                               {valueA2R1C1, valueA2R1C2, ....}, 
                               {valueA2R2C1, valueA2R2C2, ....}
                              }
                             };

For example: int[][][] arr = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} };

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

class GFG {
    public static void main(String[] args)
    {
  
        int[][][] arr = { { { 1, 2 }, { 3, 4 } }, { { 5, 6 }, { 7, 8 } } };
  
        for (int i = 0; i < 2; i++)
            for (int j = 0; j < 2; j++)
                for (int z = 0; z < 2; z++)
                    System.out.println("arr[" + i
                                       + "]["
                                       + j + "]["
                                       + z + "] = "
                                       + arr[i][j][z]);
    }
}

chevron_right


Output:

arr[0][0][0] = 1
arr[0][0][1] = 2
arr[0][1][0] = 3
arr[0][1][1] = 4
arr[1][0][0] = 5
arr[1][0][1] = 6
arr[1][1][0] = 7
arr[1][1][1] = 8

Accessing Elements of Three-Dimensional Arrays

Elements in three-dimensional arrays are commonly referred by x[i][j][k] where ‘i’ is the array number, ‘j’ is the row number and ‘k’ is the column number.

Syntax:

x[array_index][row_index][column_index]

For example:



int[][][] arr = new int[10][20][30];
arr[0][0][0] = 1;

The above example represents the element present in the first row and first column of the first array in the declared 3D array.

Note: In arrays if size of array is N. Its index will be from 0 to N-1. Therefore, for row_index 2, actual row number is 2+1 = 3.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

class GFG {
    public static void main(String[] args)
    {
  
        int[][][] arr = { { { 1, 2 }, { 3, 4 } }, { { 5, 6 }, { 7, 8 } } };
  
        System.out.println("arr[0][0][0] = " + arr[0][0][0]);
    }
}

chevron_right


Output:

arr[0][0][0] = 1

Representation of 3D array in Tabular Format: A three – dimensional array can be seen as a tables of arrays with ‘x’ rows and ‘y’ columns where the row number ranges from 0 to (x-1) and column number ranges from 0 to (y-1). A three – dimensional array with 3 array containing 3 rows and 3 columns is shown below:

Print 3D array in tabular format:

To output all the elements of a Three-Dimensional array, use nested for loops. For this three for loops are required, One to traverse the arrays, second to traverse the rows and another to traverse columns.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

class GFG {
    public static void main(String[] args)
    {
  
        int[][][] arr = { { { 1, 2 }, { 3, 4 } },
                          { { 5, 6 }, { 7, 8 } } };
  
        for (int i = 0; i < 2; i++) {
  
            for (int j = 0; j < 2; j++) {
  
                for (int k = 0; k < 2; k++) {
  
                    System.out.print(arr[i][j][k] + " ");
                }
  
                System.out.println();
            }
            System.out.println();
        }
    }
}

chevron_right


Output:

1 2 
3 4 

5 6 
7 8


My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.