Java › Arrays & Multidimensional Arrays
How do multidimensional arrays work in Java, and how do they differ from truly rectangular arrays in languages like C?
IntermediateAnswer
Java doesn't have true multidimensional arrays in the C sense; a 2D array (int[][]) is actually an array of arrays, where each row is an independently allocated one-dimensional array object -- this means rows can have different lengths (a "jagged" array), unlike a genuinely rectangular structure, and each row must be individually instantiated or accessed via nested indexing, with memory layout reflecting this array-of-arrays structure rather than one contiguous rectangular block.
int[][] matrix = new int[3][4]; // 3 rows, each with 4 columns (rectangular)
matrix[1][2] = 99;
int[][] jagged = new int[3][]; // 3 rows, columns not yet specified
jagged[0] = new int[2];
jagged[1] = new int[5]; // different length than row 0 -- legal, since it's an array of arrays
jagged[2] = new int[1];Real-world example A program modeling a triangular data structure (like Pascal's triangle, where each row has one more element than the previous) uses a jagged array where each row is deliberately allocated with a different length, taking advantage of Java arrays not being required to be rectangular.