Lecture for October 23
Two-Dimensional Arrays
You can think of a two dimensional array as a grid that is organized by rows then columns.
To declare a two dimensional array do the following
int[][] grid = new int[5][5]; // Declares a 2D array of 5 rows and 5 columns
You can have as many dimensions as you want. For graphics a 3-dimensional array would render 3D points.
It doesn’t have to be inherently visual though, you can have the n-dimensional array look at the interaction between n different variables. For example, the relationships to different questions in a survey.
Strings are essentially a char array with extra methods attached. We can imitate an array of strings with a 2D char array.
char[][] helloWorld = new char[5][5];
hello[0][0] = 'h';
hello[0][1] = 'e';
hello[0][2] = 'l';
hello[0][3] = 'l';
hello[0][4] = 'o';
hello[1][0] = 'w';
hello[1][1] = 'o';
hello[1][2] = 'r';
hello[1][3] = 'l';
hello[1][4] = 'd';
Nested-For Loops
To access the elements in a 2D array, you need to use a nested for-loop.
Here is how you print out the hello world example above
for (int row = 0; row < helloWorld.length; row++) {
for (int col = 0; col < helloWorld[row].length; col++) {
System.out.print(helloWorld[row][col]);
}
System.out.print(" ")
}
The code above prints out “hello world”
2D Arrays in methods
You can write a get like method in the following way
public static void get(int[][] array, int row, int col) {
return array[row][col];
}
Arrays in Java are pass by reference not pass by value. Meaning that if you change the array within the method then it will change outside the method.
public static void insert(int[][] array, int row, int col, int numToInsert) {
array[row][col] = numToInsert;
}
To make it not be able to change the array inside the method, use the keyword const
inside the method header. To code below will throw a compiler error.
public static void insert(const int[][] array, int row, int col, int numToInsert) {
array[row][col] = numToInsert; // This line will throw an errror
}