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:
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;
}