У ступінчастих масивах кількість елементів в різних рядках може розрізнятися. У пам'яті ступінчастий масив зберігається інакше, ніж прямокутний: у вигляді декількох внутрішніх масивів, кожен з яких має свій розмір. Крім того, виділяється окрема область пам'яті для зберігання посилань на кожен з внутрішніх масивів.
Опис ступінчастого масиву:
тип[][] ім’я;
Під кожен з масивів, складових ступінчастий масив, пам'ять потрібно виділяти явним чином, наприклад:
int[][] а = new int[3][]; // виділення пам'яті під посилання на три рядки
а[0] = new int[5]; // виділення пам'яті під 0-й рядок (5 елементів)
а[1] = new int[3]; // виділення пам'яті під 1-й рядок (3 елементи)
a[2] = new int[4]; // виділення пам'яті під 2-й рядок (4 елементи)
Тут а[0],а[1] і а[2] – це окремі масиви, до яких можна звертатися по імені. Інший спосіб виділення пам'яті:
int[][ ] а = { new int [5], new int[3], new int[4] };
До елементу ступінчастого масиву звертаються, указуючи кожну розмірність в своїх квадратних дужках, наприклад:
a[1][2] a[i][j] a[j][i]
У останньому випадку використання ступінчастих масивів не відрізняється від використання прямокутних. Невирівняні масиви зручно застосовувати, наприклад, для роботи з трикутними матрицями великого об'єму.