Does Java support multidimensional arrays?

The Java programming language does not really support multi-dimensional arrays. It does, however, support arrays of arrays.

In Java, a two-dimensional array x is really an array of one-dimensional arrays:

String[][] x = new String[5][5];

The expression x[i] selects the ith one-dimensional array; the expression x[i][j] selects the jth element from that array.

You may figure out how three-dimensional array y is. It is an array of two-dimensional arrays.

String[][][] y = new String[5][5][5];

The expression y[i] selects the ith two-dimensional array; the expression y[i][j] selects the jth one-dimensional array; the expression y[i][j][k] selects the kth element from the y[i][j] selected one-dimensional array.

In the Java built-in multi-dimensional arrays, array indices in each dimension range from zero to length - 1, where length is the array length in the given dimension. In the above example, the length for each dimensional is 5. The number of dimensions and the size of each dimension is fixed once the array has been allocated.

The important difference between multi dimensional arrays, as in C/C++ and Java arrays, is that each array does not have to be of the same length. If you think of a two-dimensional array as a matrix, the matrix does not have to be a rectangle.

Consider the following method of initializing an array of arrays:

Stirng[][] z = { {"D00"}, {"D10","D11"}, {"D20","D21","D22"} };

This does not produce the same set of data as the following method:

String[][] z = new String[3][3];

Both arrays have 3 rows but each row in the first example has a different number of columns, each row in the second example has an equal number of columns.



Printer-friendly version Printer-friendly version | Send this 
article to a friend Mail this to a friend

Previous Next vertical dots separating previous/next from contents/index/pdf Contents

  |   |