BUILDING JAVA PROGRAMS CHAPTER 7 5 MULTIDIMENSIONAL ARRAYS
BUILDING JAVA PROGRAMS CHAPTER 7. 5 MULTIDIMENSIONAL ARRAYS 1
TWO-DIMENSIONAL ARRAY Allow for the creation of table-like data structures with a row and column format. The first subscript is a row index in a table while the second subscript is a column index in a table. Declaration type[][] name = new type [row size][col size] cols 0 Examples int [][] grid = new int[3][4]; rows 0 1 2 1 [0][0] [1][0] [2][0] [0][1] [1][1] [2][1] 2 [0][2] [1][2] [2][2] 3 [0][3] [1][3] [2][3] 2
DECLARATIONS int[][]table = new int[3][4]; int[][] table = { {0, 0, 0, 0}, {0, 0, 0, 0} }; Think of a 2 D Array as An Array of Arrays 3
REFERENCING ELEMENTS OF 2 D ARRAY The array below is a 3 x 5 array of ints Declaration: Int [][] grid = new int[3][5]; grid[0][0]= grid[2][2]= 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 grid[1][3]= grid[3][0]= 4
REFERENCING ELEMENTS OF 2 D ARRAY The array below is a 3 x 5 array of ints Declaration: char [][] grid = new char[3][5]; grid[0][0]= grid[2][2]= A B C D E V W X Y Z H I J K L grid[1][3]= grid[0][5]= 5
REFERENCING ELEMENTS OF 2 D ARRAY int[][] grid = new int[3][5]; for (int row = 0; row < 3; row++){ for (int col = 0; col < 5; col++){ grid[row][col] = row + col; } } 6
PASSING TWO-DIMENSIONAL ARRAYS TO METHODS public void print. Table (int[][] table){ for (int row = 0; row < table. length; row++){ for (int col = 0; col < table[row]. length; col++){ System. out. printf(“%4 d”, table[row][col]); } System. out. println(); } } 7
LETS TRY SOME CODE Write a piece of code that constructs a twodimensional array of integers named table with 5 rows and 10 columns. Fill the array with a multiplication table, so that array element [i][j] contains the value i * j. Use nested for loops to build the array. 8
MULTIPLICATION TABLE int[][] table = new int[5][10]; //declaration for (int i = 0; i < table. length; i++) { for (int i = 0; i < 5; i++) { for (int j = 0; j < table[i]. length; j++) { for (int j = 0; j < 10; j++) { table[i][j] = i * j; } } 9
MORE CODE MATRIX ADD Write a method named matrix. Add that accepts a pair of two-dimensional arrays of integers as parameters, treats the arrays as 2 D matrices and adds them, returning the result. The sum of two matrices A and B is a matrix C where for every row i and column j, Cij = Aij + Bij. You may assume that the arrays passed as parameters have the same dimensions. 10
public static int[][] matrix. Add(int[][]a, int[][]b){ int rows = a. length; int cols = 0; if (rows>0){ cols=a[0]. length; } int[][]sum= new int[rows][cols]; //declare sum matrix for(int r=0; r<a. length; r++){ for(int c=0; c<a[r]. length; c++){ sum[r][c]=a[r][c] +b[r][c]; } } return sum; } 11
WHAT WE COVERED • Create, populate and traverse multidimensional arrays! 12
- Slides: 12