Skip to the content.
FRQs intro 2d Array Nav & sort 2d array conclusion

2D Arrays - accessing and updating elements

AP CSA

Accessing and Updating Elements in a 2D Array

Important Tips to Remember:

•	Array indices start at 0: The first row and first column are at index 0.
•	Relative positions: Always subtract 1 to determine the correct index relative to the 1-based numbering.

Accessing Elements

To access an element in a 2D array, use the following format:

arr[row][column]

Updating Elements

To update an element in a 2D array, assign a new value using this format:

variable_name[row][column] = new_value

For example: If you want to change the value in the second row and third column, use:

array[1][2] = new_value

Popcorn Hack:

Write code to access the scores: 92, 70, 93 and change the last score to 100

# Example 2D array representing the scores
scores = [
    [100, 85, 95, 96],  # Student0
    [98, 100, 100, 95], # Student1
    [92, 100, 98, 100], # Student2
    [100, 100, 97, 99], # Student3
    [100, 100, 100, 70],# Student4
    [100, 100, 99, 98], # Student5
    [100, 94, 100, 93]  # Student6
]
scores[2][0] = 92 
scores[4][3] = 70  
scores[6][3] = 100

for student in scores:
    print(student)

[100, 85, 95, 96]
[98, 100, 100, 95]
[92, 100, 98, 100]
[100, 100, 97, 99]
[100, 100, 100, 70]
[100, 100, 99, 98]
[100, 94, 100, 100]
public class PopcornHack {
    public static void main(String[] args) {
        int[][] scores = {
            {100, 85, 95, 96},
            {98, 100, 100, 95},
            {92, 100, 98, 100},
            {100, 100, 97, 99},
            {100, 100, 100, 70},
            {100, 100, 99, 98},
            {100, 94, 100, 93}
        };

        int score1 = scores[2][0]; 
        int score2 = scores[4][3]; 
        scores[6][3] = 100;        

        for (int i = 0; i < scores.length; i++) {
            for (int j = 0; j < scores[i].length; j++) {
                System.out.print(scores[i][j] + " ");
            }
            System.out.println();
        }
    }
}
PopcornHack.main(null);
100 85 95 96 
98 100 100 95 
92 100 98 100 
100 100 97 99 
100 100 100 70 
100 100 99 98 
100 94 100 100 

Essential points:

  • When accessing elements at arr[first][second], the first index is used for rows, and the second index is used for columns
  • Square brackets [row][col] are used to access and modify an element of a 2d array.

HW:

image.png image-2.png

public static boolean isLatin(int[][] square) {
    if (ArrayTester.containsDuplicates(square[0])) {
        return false;
    }

    for (int i = 1; i < square.length; i++) {
        if (!ArrayTester.hasAllValues(square[0], square[i])) {
            return false;
        }
    }

    for (int c = 0; c < square[0].length; c++) {
        int[] column = ArrayTester.getColumn(square, c);
        if (!ArrayTester.hasAllValues(square[0], column)) {
            return false;
        }
    }

    return true;
}