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 rowstable[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)