# NoJaggedArraysDRAFT

Multi-dimensional arrays have a rectangular (for two dimensions)
or hyper-rectangular (for any number of dimensions) shape.
For example, it’s not possible to have a multi-dimensional array `a`

where `a[0].length != a[1].length`

.

Multi-dimensional arrays have a rectangular shape

Multi-dimensional arrays can have a jagged shape

## CorrectionHere is what's right.

A mult-dimensional array in Java is just an array of arrays.
Assume a two-dimensional array, where the outer array has `n`

elements.
Each of those `n`

elements the outer array points to
is a separate one-dimensional array.
And as such, each of those `n`

elements can have a separate length.

Note, though, that **array creation expressions** always create rectangular arrays:

`String[][] cells = new String[100][80]; // rectangular`

One can create a jagged array by using an **array initializer**:

`int[][] triangle = new int[][] { {1, 2}, {3} }; // jagged`

One also can create a jagged array by updating an array element of an outer array to point to an array with a different length:

```
double[][][] matrix = new double[4][4][4]; // hyper-rectangular
matrix[2][1] = new int[100]; // now matrix[2][1].length == 100
matrix[1] = new int[30][20]; // now matrix[1].length == 30
```