Row-major order (most common)
java
int[][] grid = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (int r = 0; r < grid.length; r++) {
for (int c = 0; c < grid[r].length; c++) {
System.out.print(grid[r][c] + " ");
}
}
// Output: 1 2 3 4 5 6 7 8 9
[1→ 2→ 3]
[4→ 5→ 6]
[7→ 8→ 9]
Column-major order
java
for (int c = 0; c < grid[0].length; c++) {
for (int r = 0; r < grid.length; r++) {
System.out.print(grid[r][c] + " ");
}
}
// Output: 1 4 7 2 5 8 3 6 9
[1 2 3]
[↓ ↓ ↓]
[4 5 6]
[↓ ↓ ↓]
[7 8 9]
Enhanced for loop with 2D arrays
java
int[][] grid = {
{1, 2, 3},
{4, 5, 6}
};
// Outer loop: each row (a 1D array)
// Inner loop: each element in that row
for (int[] row : grid) {
for (int val : row) {
System.out.print(val + " ");
}
System.out.println();
}
1 2 3
4 5 6
Processing individual rows
java
int[][] scores = {
{90, 85, 92}, // Student 0
{78, 88, 95}, // Student 1
{82, 79, 91} // Student 2
};
// Average of row 1 (Student 1)
int sum = 0;
for (int c = 0; c < scores[1].length; c++) {
sum += scores[1][c];
}
double avg = (double) sum / scores[1].length;
System.out.println("Student 1 avg: " + avg); // 87.0
Processing individual columns
java
// Sum of column 2 (Assignment 2)
int colSum = 0;
for (int r = 0; r < scores.length; r++) {
colSum += scores[r][2];
}
System.out.println("Assignment 2 total: " + colSum); // 278
Diagonal traversal
java
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// Main diagonal: [0][0], [1][1], [2][2]
for (int i = 0; i < matrix.length; i++) {
System.out.print(matrix[i][i] + " ");
}
// Output: 1 5 9
Printing a 2D array nicely
java
public static void printGrid(int[][] grid) {
for (int[] row : grid) {
for (int val : row) {
System.out.printf("%4d", val); // right-aligned, 4 chars wide
}
System.out.println();
}
}
1 2 3
4 5 6
7 8 9
Complete example: Tic-Tac-Toe board
java
public class TicTacToe {
private String[][] board;
public TicTacToe() {
board = new String[3][3];
// Fill with empty spaces
for (int r = 0; r < 3; r++) {
for (int c = 0; c < 3; c++) {
board[r][c] = "-";
}
}
}
public void place(int r, int c, String mark) {
board[r][c] = mark;
}
public void display() {
for (String[] row : board) {
for (String cell : row) {
System.out.print(cell + " ");
}
System.out.println();
}
}
public boolean checkRow(int r) {
return !board[r][0].equals("-") &&
board[r][0].equals(board[r][1]) &&
board[r][1].equals(board[r][2]);
}
public static void main(String[] args) {
TicTacToe game = new TicTacToe();
game.place(0, 0, "X");
game.place(1, 1, "X");
game.place(2, 2, "X");
game.display();
// X - -
// - X -
// - - X
}
}
AP Exam Tips
- •
- •
- •
- •
- •