Skip to the content.

Unit 8 Notes

Unit 8: 2D Arrays – AP Computer Science A

🔑 Key Concepts

  • Declaring and initializing 2D arrays
  • Accessing and modifying elements
  • Nested for loops for traversal
  • Row-major order
  • Array length properties
  • Common algorithms (sum, count, max, etc.)

🧱 Declaration and Initialization

int[][] matrix = new int[2][3]; // 2 rows, 3 columns
int[][] table = {
    {1, 2, 3},
    {4, 5, 6}
};

🎯 Accessing and Modifying Elements

matrix[0][1] = 9;       // sets value in row 0, column 1
System.out.println(matrix[1][2]); // gets value in row 1, column 2

🔁 Traversing a 2D Array (Row-Major)

for (int row = 0; row < table.length; row++) {
    for (int col = 0; col < table[row].length; col++) {
        System.out.print(table[row][col] + " ");
    }
}

🔍 Lengths

  • table.length → number of rows
  • table[0].length → number of columns in row 0

⚙️ Common Algorithms

Sum all values:

int sum = 0;
for (int r = 0; r < matrix.length; r++) {
    for (int c = 0; c < matrix[r].length; c++) {
        sum += matrix[r][c];
    }
}

Count even values:

int count = 0;
for (int[] row : matrix) {
    for (int val : row) {
        if (val % 2 == 0) count++;
    }
}

🧪 Practice Multiple Choice (5 Questions)

1. What does matrix.length return for int[][] matrix = new int[4][5];?
(A) 4
(B) 5
(C) 9
(D) 20
Answer: (A)


2. What is printed?

int[][] grid = {
    {1, 2},
    {3, 4}
};
System.out.println(grid[1][0]);

(A) 1
(B) 2
(C) 3
(D) 4
Answer: (C)


3. What loop prints all elements row by row?
(A) for (int i : matrix)
(B) Nested for loops
(C) while (matrix.length > 0)
(D) for (int i = 0; i < matrix[0].length; i++)
Answer: (B)


4. How many total elements are in a 3x4 array?
(A) 7
(B) 12
(C) 3
(D) 4
Answer: (B)


5. What will cause an ArrayIndexOutOfBoundsException in 2D arrays?
(A) Using a nested for-loop
(B) Accessing matrix[matrix.length][0]
(C) Accessing matrix[0][0]
(D) Assigning an int to a cell
Answer: (B)