0% found this document useful (0 votes)
8 views11 pages

Understanding Java Multidimensional Arrays

This document discusses multidimensional arrays in Java. It explains that arrays can contain other arrays, creating multidimensional arrays. It provides examples of declaring and initializing 2D arrays, including for a tic-tac-toe board and multiplication table. Finally, it proposes exercises for representing other data structures using multidimensional arrays, such as a chess board, mileage chart, Sudoku puzzle, and crossword grid.

Uploaded by

api-127299018
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views11 pages

Understanding Java Multidimensional Arrays

This document discusses multidimensional arrays in Java. It explains that arrays can contain other arrays, creating multidimensional arrays. It provides examples of declaring and initializing 2D arrays, including for a tic-tac-toe board and multiplication table. Finally, it proposes exercises for representing other data structures using multidimensional arrays, such as a chess board, mileage chart, Sudoku puzzle, and crossword grid.

Uploaded by

api-127299018
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Multidimensional Arrays

Eric Roberts CS 106A May 9, 2012

Multidimensional Arrays
Because the elements of an array can be of any Java type, those elements can themselves be arrays. Arrays of arrays are called multidimensional arrays. In Java, you can create a multidimensional array by using multiple brackets in both the type and the initialization parts of the declaration. For example, you can create array space for a 3 x 3 tic-tac-toe board using the following declaration:
char[][] board = new char[3][3];

This declaration creates a two-dimensional array of characters that is organized like this:
board[0][0] board[0][1] board[0][2] board[1][0] board[1][1] board[1][2] board[2][0] board[2][1] board[2][2]

Arrays of Arrays
Internally, Java represents multidimensional arrays as arrays of arrays. It is often important to keep this fact in mind when you are creating array structures. In Java, it is often necessary to initialize the rows of a twodimensional array individually, as in the following revised code for creating the tic-tac-toe board:
char[][] board = new char[3][]; for (int i = 0; i < 3; i++) { board[i] = new char[3]; }

Static Initialization
Java makes it easy to initialize the elements of an array as part of a declaration. The syntax is
type[] name = { elements };

where elements is a list of the elements of the array separated by commas. The length of the array is automatically set to be the number of values in the list. For example, the following declaration initializes the variable powersOfTen to the values 100, 101, 102, 103, and 104:
int[] powersOfTen = { 1, 10, 100, 1000, 10000 };

This declaration creates an integer array of length 5 and initializes the elements as specified.

Initializing Multidimensional Arrays


You can initialize a multidimensional array when you declare it by using nested braces to reflect the levels of array nesting. For example, you can declare and initialize a multiplication table for the digits 0 to 9 like this:
private static final { 0, 0, 0, 0, { 0, 1, 2, 3, { 0, 2, 4, 6, { 0, 3, 6, 9, { 0, 4, 8, 12, { 0, 5, 10, 15, { 0, 6, 12, 18, { 0, 7, 14, 21, { 0, 8, 16, 24, { 0, 9, 18, 27, }; int[][] 0, 0, 4, 5, 8, 10, 12, 15, 16, 20, 20, 25, 24, 30, 28, 35, 32, 40, 36, 45, MULTIPLICATION_TABLE = { 0, 0, 0, 0 }, 6, 7, 8, 9 }, 12, 14, 16, 18 }, 18, 21, 24, 27 }, 24, 28, 32, 36 }, 30, 35, 40, 45 }, 36, 42, 48, 56 }, 42, 49, 56, 63 }, 48, 56, 64, 72 }, 54, 63, 72, 81 }

Exercise: Dreaming up Applications


The plan for today is to go through a series of data structure design exercises and then pick one or two to embellish into larger programs. Your first exercise, however, is to spend a few minutes thinking about real-world examples of multidimensional arrays other than the ones that appear on the subsequent slides. Use your imagination!

Exercise: Representing a Chess Board


0 1 2 3 4 5 6 7

r n b q k b n r p p p p p p p p

P P P P P P P P R N B Q K B N R
0 1 2 3 4 5 6 7

Exercise: Mileage Chart


I was intrigued to discover that the top Google Images hit for mileage chart was the following table for South Dakota:

Exercise: Sudoku
Design a program that checks legality of a Sudoku position, in which each digit between 1 and 9 must appear exactly once in each row, column, and 3x3 square.
3
7 6 2 8

9
4 8 5 3

2
1 5 8 4 9

4
8 2 1 6

6
9 7 3 2

5
3 1 8 7

8
6 4 7 1

1
2 3 9 5

7
5 9 6 4

1
9 4 5

7
6 2 1

6
7 3 8

9
5 7 3

5
8 1 4

4
2 9 6

2
3 5 9

8
4 6 7

3
1 8 2

Exercise: Crossword Numbering


What structure might you use to represent the black squares on a crossword puzzle grid?

The End

You might also like