Phase 7 of 20 · Topic 7.3

Jagged & Ragged Multi-Dimensional Arrays

1Concept

Because multi-dimensional arrays in Java are arrays of arrays, each row can possess an entirely distinct length. These are called Jagged (or Ragged) Arrays and are critical for triangular matrix mathematics, graph adjacency lists, and memory conservation.

2Architecture Diagram

Jagged Array:
Row 0: [ 1 ]             (Length 1)
Row 1: [ 2, 3 ]          (Length 2)
Row 2: [ 4, 5, 6, 7 ]    (Length 4)

3Code Example

Core Java
public class JaggedArrayDemo {
    public static void main(String[] args) {
        // Allocate row references first
        int[][] jagged = new int[3][];
        jagged[0] = new int[]{1};
        jagged[1] = new int[]{2, 3};
        jagged[2] = new int[]{4, 5, 6, 7};

        System.out.println("=== Jagged Array Hierarchy ===");
        for (int r = 0; r < jagged.length; r++) {
            System.out.print("Row " + r + " (len " + jagged[r].length + "): ");
            for (int val : jagged[r]) {
                System.out.print(val + " ");
            }
            System.out.println();
        }
    }
}

4Expected Output

=== Jagged Array Hierarchy ===
Row 0 (len 1): 1 
Row 1 (len 2): 2 3 
Row 2 (len 4): 4 5 6 7 

5Key Takeaways

  • Jagged arrays optimize memory by avoiding empty zero-padding in non-square datasets.
  • Attempting to access an uninitialized row (e.g. jagged[3][0]) throws NullPointerException.
  • Widely utilized in graph data structures (adjacency lists) to conserve memory.