Table of Contents
Introduction
Data in a table or a matrix can be represented using a two dimensional array.
The preceding ___ introduces how to use one-dimensional arrays to store linear collections of elements. You can use a two-dimensional array to store a matrix or a table. For example, the following table that lists the distances between cities can be stored using a two-dimensional array named distances
.
The two dimensional array equivalent:
double[][] distances = { {0, 983, 787, 714, 1375, 967, 1087}, {983, 0, 214, 1102, 1763, 1723, 1842}, {787, 214, 0, 661, 781, 810}, {714, 1102, 888, 0, 661, 781, 810}, {1375, 1763, 1549, 661, 0, 1426, 1187}, {967, 1723, 1548, 781, 1426, 0, 239}, {1087, 1842, 1627, 810, 1187, 239, 0}, };
Two Dimensional Array Basics
An element in a two dimensional array is accessed through a row and a column index.
How do you declare a variable for two dimensional arrays? How do you make a two dimensional array? How do you access elements in a two dimensional array? This section addresses these issues.
Declaring Variables of and Making Two Dimensional Arrays
The syntax for declaring a two-dimensional array is:
elementType[][] arrayRefVar;
or
elementType arrayRefVar[][]; // Allowed, but not preferred style of syntax
As an example, here is how you would declare a two-dimensional array variable matrix
of int
values:
int[][] matrix;
or
int matrix[][]; // Allowed, but not preferred style of syntax
You can make a two dimensional array of 5-by-5 int
values and assign it to matrix
using this syntax:
matrix = new int[5][5];
Two subscripts are used in a two dimensional array, one for the rows and another for the columns. As in a one dimensional array, the index for each subscript is of the int
type and starts from 0
, as show below in table (a).

int
value, starting from 0.To assign the value 7 to a specific element at row 2
and column 1
, as shown in table (b), you can use the following syntax:
matrix[2][1] = 7;
To make the a point clear: the 1st bracket [] is references the rows. The 2nd [] is references the columns.
*Note that a common mistake is to use matrix[2, 1]
to access the element at row 2
and column 1
. In Java, each subscript must be enclosed in a pair of square brackets.
You can also use an array initializer to declare, make, and initialize a two dimensional array. For example, the following code:
int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}, };
makes an array with specified initial values, as shown in table (c). This is code is equivalent to:
int[][] array = new int[4][3]; array[0][0] = 1; array[0][1] = 2; array[0][2] = 3; array[1][0] = 4; array[1][1] = 5; array[1][2] = 6; array[2][0] = 7; array[2][1] = 8; array[2][2] = 9; array[3][0] = 10; array[3][1] = 11; array[3][2] = 12;
Obtaining the Lengths of Two-Dimensional Arrays
A two-dimensional array is actually an array in which each element is a one-dimensional array. The length of an array x
is the number of elements in the array, which can be obtained using x.length
. x[0]
, x[1]
,…, and x[x.length-1]
are arrays. Their lengths can be obtained using x[0].length
, x[1].length
,…, and x[x.length-1].length
.
In other words, Number of Rows = x.length
and Number of Columns = x[x.length-1].length
.
For example, suppose x = new int[3][4]
, x[0]
, x[1]
, and x[2]
are one dimensional arrays and each contains four elements. x.length
is 3
, and x[0].length
, x[1].length
, and x[2].length
are 4
. Here’s a diagram showing the lengths of a two dimensional array:

Ragged Arrays
Each row in a two dimensional array is itself an array. Thus, the rows can have different lengths. An array of this kind is known as a ragged array. Here is an example of making a ragged array:
As you can see, triangleArray[0].length
is 5, traingleArray[1].length
is 4, triangleArray[2]
is 3, triangleArray[3]
is 2, and triangleArray[4]
is 1. If you don’t know the values in a ragged array in advance, but do know the sizes- say, the same as before- you can make a ragged array using the following syntax:
You can now assign values to the array. For example,
triangleArray[0][3] = 50; traingleArray[4][0] = 45;
*Note that the syntax new int[5][]
for making an array requires the first index to be specified. So new int[][]
would be wrong.
◄◄◄BACK | NEXT►►►