DEV Community is a community of 788,395 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Accessing Elements in 2D Arrays in Java

The two-dimensional (2D) array is a useful data structure. Like one-dimensional arrays, 2D arrays work well with for loops.

Here is a 2D array in Java:

int[][] arr = {
{0, 1, 2, 3, 4},
{5, 6, 7, 8, 9},
{10, 11, 12, 13, 14}
};

The int[][] declaration means that arr is a 2D array of int values. Since there are two pairs of [], the array has two dimensions.

Look at this 2D array. It is actually an array of arrays. The array arr has a length of 3. It has three elements, or rows. Each row is an array of length 5:

{0, 1, 2, 3, 4}

{5, 6, 7, 8, 9}

{10, 11, 12, 13, 14}

The first array is arr. The second and third arrays are arr and arr respectively. A for loop can access each of these arrays using an index:

for (int i=0; i < arr.length; i++) {
int[] row = arr[i];
System.out.println( Arrays.toString(row) );
}

Here is the output:

[0, 1, 2, 3, 4]
[5, 6, 7, 8, 9]
[10, 11, 12, 13, 14]

The for loop accesses each row. Since the row is also an array, an inner for loop can access each of its elements:

for (int i=0; i < arr.length; i++) {
int[] row = arr[i];
for (int j=0; j < row.length; j++) {
System.out.println(i + "," + j + ": " + arr[i][j]);
}
}

Here is the output:

0,0: 0
0,1: 1
0,2: 2
0,3: 3
0,4: 4
1,0: 5
1,1: 6
1,2: 7
1,3: 8
1,4: 9
2,0: 10
2,1: 11
2,2: 12
2,3: 13
2,4: 14

In the output, the first number is the row index. The second number is the column index. The third number is the element at that position of the 2D array.

Note how two indexes are required when accessing a single element of the 2D array. For example, arr contains the int value 8. The for loop accesses each row in order. Once it has a row, then it uses an inner for loop to access its int values in order.

Here is a complete example:

public class Example {
public static void main(String[] args) {

int[][] arr = {
{0, 1, 2, 3, 4},
{5, 6, 7, 8, 9},
{10, 11, 12, 13, 14}
};

for (int i=0; i < arr.length; i++) {
int[] row = arr[i];
for (int j=0; j < row.length; j++) {
System.out.println(i + "," + j + ": " + arr[i][j]);
}
}

}
}

When using 2D arrays, use two indexes. The first index is for the row. The second index is for the column. In other words, each element of a 2D array is an array. The first index accesses an array element. Then use a second index to access the elements in that array. To facilitate this, use a for loop with an inner for loop to provide the row and column indexes.