You are on page 1of 9

Arrays: Higher Dimensional Arrays

CS0007: Introduction to Computer Programming

Review
If the == operator has two array variable operands, what is being

compared?
The reference variables held in the variables.

How do you compare two arrays to see if they hold the same

elements?
Iterate through the arrays and compare them element by

element.
How are the sum and average array algorithms similar? Both iterate through the array and add each element to an

accumulator variable.
How are the minimum and maximum element algorithms similar? The current minimum or maximum element is compared to each

element, if an element is smaller (minimum case) or larger (maximum case) than the current minimum or maximum, the element replaces it.
If you intend to use a partially filled array, what information must

be kept in addition to the array itself?


The current number of elements in the array

How does the Sequential Search Algorithm work?

Two Dimensional Arrays


Imagine now we want to keep 10 test scores for 30

students.
How would we represent this in a program with what

weve learned?

Answer: You would need either 30 10-element arrays or 10

30-element arrays. This was the problem arrays were supposed to solve!

What we have been working with so far are

considered one dimensional arrays, because they only extend along one dimension (one set of data). Java also allows for higher dimensional arrays, for example, two dimensional arrays.
Two dimensional arrays can be though of having a table

of rows and columns in memory.


So, a better solution to the above question is what?
Answer: Have a 30 x 10 or a 10 x 30 two dimensional

array!

Two Dimensional Array Example


New Topics:
Two Dimensional Arrays

Two Dimensional Arrays


Declaring a two dimensional array is very similar to

declaring a one dimensional array.


For example, to declare an integer array variable with 3

rows and 4 columns called numbers you would: int[][] numbers = new int[3][4];
The two sets of brackets on the left side of the assignment operator indicates the variable is a reference variable to a two dimensional array. The [3] on the right side indicates the array object will have 3 rows. The [4] on the right side indicates the array object will have 4 columns.

Each array element has two indices, one indicating

the row and one the column.


For example, to access the element in the first row and

third column of the above declared numbers array you would: numbers[0][2]

Two Dimensional Arrays


To initialize a two dimensional array you encapsulate each row in curly

brackets, separating elements by commas. You separate each row by commas and put the entire array in curly brackets:
int[][] numbers = {{1,2,3}, {4,5,6}, {7,8,9}}; or int[][] numbers = {{1,2,3}, {4,5,6}, {7,8,9}};
Another way to think of two dimensional arrays is that a two dimensional

is a one dimensional array of one dimensional arrays.


Said another way, it is a reference variable to an array that holds

reference variables to arrays.


This is apparent when using the length data member in two dimensional arrays:

int[][] numbers = new int[3][4]; numbers.length the number of rows numbers[0].length the number of columns in the first row

Example: TwoDimLengths.java

Class Programming Practice: ClassScores.java


Create a program where a user can enter 3

students scores on 3 quizzes. Then, the program should tell the user the average for each student, each quiz, and overall class average for all quizzes.

Ragged Arrays
Since the rows of a two dimensional array are

arrays themselves, they can have different lengths: When the rows of a two dimensional array are of different lengths, the array is known as a ragged array.

int[][] ragged = new int[4][]; ragged[0] = new int[3]; ragged[1] = new int[4]; ragged[2] = new int[5]; ragged[3] = new int[6]; Example: RaggedArray.java

Higher Dimensional Arrays


Java does not impose a limit on how many

dimensions an array can be. For instance we can create a three dimensional array: int[][][] numbers = new int[2][3][4];
You can have higher dimensional arrays by simply

defining the size of the dimension.


You can also have ragged arrays of higher

dimensions.
For instance you can have a three dimensional

array with 3 two-dimensional arrays of sizes 3x3, 4x5, and 2x6.

You might also like