SlideShare a Scribd company logo
2
Most read
4
Most read
5
Most read
1 
Multidimensional Arrays
Thus far, you have used one-dimensional arrays to model linear 
collections of elements. You can use a two-dimensional array to 
represent a matrix or a table. For example, the following table that 
describes the distances between the cities can be represented using 
a two-dimensional array. 
2 
Motivations 
Chicago 
Boston 
New York 
Atlanta 
Miami 
Dallas 
Houston 
Distance Table (in miles) 
Chicago Boston New York Atlanta Miami Dallas Houston 
0 983 787 714 1375 967 1087 
983 0 214 1102 1763 1723 1842 
787 214 0 888 1549 1548 1627 
714 1102 888 0 661 781 810 
1375 1763 1549 661 0 1426 1187 
967 1723 1548 781 1426 0 239 
1087 1842 1627 810 1187 239 0 
1723 1548 781 1426 0 239
3 
Objectives 
 To give examples of representing data using two-dimensional arrays 
 To declare variables for two-dimensional arrays, create arrays, and 
access array elements in a two-dimensional array using row and column 
indexes 
 To program common operations for two-dimensional arrays (displaying 
arrays, summing all elements, finding min and max elements, and 
random shuffling)
Declare/Create Two-dimensional Arrays 
4 
// Declare array ref var 
dataType[][] refVar; 
// Create array and assign its reference to variable 
refVar = new dataType[10][10]; 
// Combine declaration and creation in one statement 
dataType[][] refVar = new dataType[10][10]; 
// Alternative syntax 
dataType refVar[][] = new dataType[10][10];
5 
Declaring Variables of Two-dimensional 
Arrays and Creating 
Two-dimensional Arrays 
int[][] matrix = new int[10][10]; 
or 
int matrix[][] = new int[10][10]; 
matrix[0][0] = 3; 
for (int i = 0; i  matrix.length; i++) 
for (int j = 0; j  matrix[i].length; j++) 
matrix[i][j] = (int)(Math.random() * 1000); 
double[][] x;
Two-dimensional Array Illustration 
0 1 2 
6 
0 1 2 3 4 
0 
0 1 2 3 4 
7 
1 
2 
3 
4 
0 
1 
2 
3 
4 
matrix[2][1] = 7; 
matrix = new int[5][5]; 
3 
7 
0 
1 
2 
int[][] array = { 
{1, 2, 3}, 
{4, 5, 6}, 
{7, 8, 9}, 
{10, 11, 12} 
}; 
1 
2 
3 
4 
5 
6 
8 
9 
10 
11 
12 
array.length? 4 
array[0].length? 3 
matrix.length? 5 
matrix[0].length? 5
Declaring, Creating, and Initializing Using 
7 
Shorthand Notations 
You can also use an array initializer to declare, create and 
initialize a two-dimensional array. For example, 
int[][] array = new int[4][3]; 
array[0][0] = 1; array[0][1] = 2; array[0][2] = 3; 
array[1][0] = 4; array[1][1] = 5; array[1][2] = 6; 
array[2][0] = 7; array[2][1] = 8; array[2][2] = 9; 
array[3][0] = 10; array[3][1] = 11; array[3][2] = 12; 
int[][] array = { 
{1, 2, 3}, 
{4, 5, 6}, 
{7, 8, 9}, 
{10, 11, 12} 
}; 
Same as
8 
Lengths of Two-dimensional 
Arrays 
x 
x[0] 
x[1] 
x[2] 
x[0][0] x[0][1] x[0][2] x[0][3] 
x[1][0] x[1][1] x[1][2] x[1][3] 
x[2][0] x[2][1] x[2][2] x[2][3] 
x.length is 3 
x[0].length is 4 
x[1].length is 4 
x[2].length is 4 
int[][] x = new int[3][4];
9 
Lengths of Two-dimensional 
Arrays, cont. 
int[][] array = { 
{1, 2, 3}, 
{4, 5, 6}, 
{7, 8, 9}, 
{10, 11, 12} 
}; 
array.length 
array[0].length 
array[1].length 
array[2].length 
array[3].length 
array[4].length ArrayIndexOutOfBoundsException
10 
Ragged Arrays 
Each row in a two-dimensional array is itself an array. So, 
the rows can have different lengths. Such an array is 
known as a ragged array. For example, 
int[][] matrix = { 
{1, 2, 3, 4, 5}, 
matrix.length is 5 
{2, 3, 4, 5}, 
matrix[0].length is 5 
{3, 4, 5}, 
matrix[1].length is 4 
matrix[2].length is 3 
{4, 5}, 
matrix[3].length is 2 
{5} 
matrix[4].length is 1 
};
11 
Ragged Arrays, cont. 
1 2 3 4 5 
int[][] triangleArray = { 
{1, 2, 3, 4, 5}, 
{2, 3, 4, 5}, 
{3, 4, 5}, 
{4, 5}, 
{5} 
}; 
1 2 3 4 
1 2 3 
1 2 
1 2
Processing Two-Dimensional Arrays 
See the examples in the text. 
1. (Initializing arrays with input values) 
2. (Printing arrays) 
3. (Summing all elements) 
4. (Summing all elements by column) 
5. (Which row has the largest sum) 
6. (Finding the smallest index of the largest element) 
7. (Random shuffling) 
12
Initializing arrays with input values 
java.util.Scanner input = new Scanner(System.in); 
System.out.println(Enter  + matrix.length +  rows and  + 
matrix[0].length +  columns: ); 
for (int row = 0; row  matrix.length; row++) { 
for (int column = 0; column  matrix[row].length; column++) { 
matrix[row][column] = input.nextInt(); 
} 
} 
13
Initializing arrays with random values 
for (int row = 0; row  matrix.length; row++) { 
for (int column = 0; column  matrix[row].length; column++) { 
matrix[row][column] = (int)(Math.random() * 100); 
} 
} 
14
15 
Printing arrays 
for (int row = 0; row  matrix.length; row++) { 
for (int column = 0; column  matrix[row].length; column++) { 
System.out.print(matrix[row][column] +  ); 
} 
System.out.println(); 
}
16 
Summing all elements 
int total = 0; 
for (int row = 0; row  matrix.length; row++) { 
for (int column = 0; column  matrix[row].length; column++) { 
total += matrix[row][column]; 
} 
}
17 
Summing elements by column 
for (int column = 0; column  matrix[0].length; column++) { 
int total = 0; 
for (int row = 0; row  matrix.length; row++) 
total += matrix[row][column]; 
System.out.println(Sum for column  + column +  is  
+ total); 
}
18 
Multidimensional Arrays 
Occasionally, you will need to represent n-dimensional 
data structures. In Java, you can create n-dimensional 
arrays for any integer n. 
The way to declare two-dimensional array variables and 
create two-dimensional arrays can be generalized to 
declare n-dimensional array variables and create n-dimensional 
arrays for n = 3. For example, the following 
syntax declares a three-dimensional array variable scores, 
creates an array, and assigns its reference to scores. 
double[][][] scores = new double[10][5][2];
19 
Problem: Calculating Total Scores 
 Objective: write a program that calculates the total score for 
students in a class. Suppose the scores are stored in a three-dimensional 
array named scores. The first index in scores refers to 
a student, the second refers to an exam, and the third refers to the 
part of the exam. Suppose there are 7 students, 5 exams, and each 
exam has two parts--the multiple-choice part and the programming 
part. So, scores[i][j][0] represents the score on the multiple-choice 
part for the i’s student on the j’s exam. Your program displays the 
total score for each student. 
TToottaallSSccoorree RRuunn

More Related Content

PPTX
Presentation on array
PPTX
Sparse matrix
PPTX
Binary Search Tree
PPT
BINARY TREE REPRESENTATION.ppt
PPTX
Binary Search Tree in Data Structure
PPTX
Introduction to Array ppt
PPTX
PPTX
Arrays in java
Presentation on array
Sparse matrix
Binary Search Tree
BINARY TREE REPRESENTATION.ppt
Binary Search Tree in Data Structure
Introduction to Array ppt
Arrays in java

What's hot (20)

PPTX
Linked list in Data Structure and Algorithm
PPTX
Priority Queue in Data Structure
PPT
Java Arrays
PPTX
Union in C programming
PPTX
Queue Implementation Using Array & Linked List
PPTX
SQL Joins.pptx
PPTX
Programming in c Arrays
PPTX
Linked list
PPTX
Arrays in c
PPTX
Row major and column major in 2 d
PPT
PDF
Stack push pop
PPTX
SQL JOIN
PPTX
Tree Traversal
PPTX
Introduction to Data Structure & algorithm
PPTX
Linked list
PPT
Bubble sort
PDF
Heaps
PPTX
Constructor and Types of Constructors
PPTX
Graph traversals in Data Structures
Linked list in Data Structure and Algorithm
Priority Queue in Data Structure
Java Arrays
Union in C programming
Queue Implementation Using Array & Linked List
SQL Joins.pptx
Programming in c Arrays
Linked list
Arrays in c
Row major and column major in 2 d
Stack push pop
SQL JOIN
Tree Traversal
Introduction to Data Structure & algorithm
Linked list
Bubble sort
Heaps
Constructor and Types of Constructors
Graph traversals in Data Structures
Ad

Similar to Multi dimensional arrays (20)

PPTX
Ch 8 Multidimensional Array in oop as per gtu.pptx
DOCX
Arraysnklkjjkknlnlknnjlnjljljkjnjkjn.docx
PDF
Arrays and library functions
PPTX
Chapter 13.pptx
PPT
17-Arrays en java presentación documento
PPT
PDF
PPT
Array
PPT
Lecture 15 - Array
PPTX
Array Introduction One-dimensional array Multidimensional array
PDF
array-191103180006.pdf
PPTX
Array,MULTI ARRAY, IN C
PPTX
A quick introduction to R
PPTX
Chapter 7.1
PPT
L10 array
PPTX
Chap1 array
PPTX
PPTX
C (PPS)Programming for problem solving.pptx
PPTX
Arrays in C language
Ch 8 Multidimensional Array in oop as per gtu.pptx
Arraysnklkjjkknlnlknnjlnjljljkjnjkjn.docx
Arrays and library functions
Chapter 13.pptx
17-Arrays en java presentación documento
Array
Lecture 15 - Array
Array Introduction One-dimensional array Multidimensional array
array-191103180006.pdf
Array,MULTI ARRAY, IN C
A quick introduction to R
Chapter 7.1
L10 array
Chap1 array
C (PPS)Programming for problem solving.pptx
Arrays in C language
Ad

Multi dimensional arrays

  • 2. Thus far, you have used one-dimensional arrays to model linear collections of elements. You can use a two-dimensional array to represent a matrix or a table. For example, the following table that describes the distances between the cities can be represented using a two-dimensional array. 2 Motivations Chicago Boston New York Atlanta Miami Dallas Houston Distance Table (in miles) Chicago Boston New York Atlanta Miami Dallas Houston 0 983 787 714 1375 967 1087 983 0 214 1102 1763 1723 1842 787 214 0 888 1549 1548 1627 714 1102 888 0 661 781 810 1375 1763 1549 661 0 1426 1187 967 1723 1548 781 1426 0 239 1087 1842 1627 810 1187 239 0 1723 1548 781 1426 0 239
  • 3. 3 Objectives To give examples of representing data using two-dimensional arrays To declare variables for two-dimensional arrays, create arrays, and access array elements in a two-dimensional array using row and column indexes To program common operations for two-dimensional arrays (displaying arrays, summing all elements, finding min and max elements, and random shuffling)
  • 4. Declare/Create Two-dimensional Arrays 4 // Declare array ref var dataType[][] refVar; // Create array and assign its reference to variable refVar = new dataType[10][10]; // Combine declaration and creation in one statement dataType[][] refVar = new dataType[10][10]; // Alternative syntax dataType refVar[][] = new dataType[10][10];
  • 5. 5 Declaring Variables of Two-dimensional Arrays and Creating Two-dimensional Arrays int[][] matrix = new int[10][10]; or int matrix[][] = new int[10][10]; matrix[0][0] = 3; for (int i = 0; i matrix.length; i++) for (int j = 0; j matrix[i].length; j++) matrix[i][j] = (int)(Math.random() * 1000); double[][] x;
  • 6. Two-dimensional Array Illustration 0 1 2 6 0 1 2 3 4 0 0 1 2 3 4 7 1 2 3 4 0 1 2 3 4 matrix[2][1] = 7; matrix = new int[5][5]; 3 7 0 1 2 int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} }; 1 2 3 4 5 6 8 9 10 11 12 array.length? 4 array[0].length? 3 matrix.length? 5 matrix[0].length? 5
  • 7. Declaring, Creating, and Initializing Using 7 Shorthand Notations You can also use an array initializer to declare, create and initialize a two-dimensional array. For example, int[][] array = new int[4][3]; array[0][0] = 1; array[0][1] = 2; array[0][2] = 3; array[1][0] = 4; array[1][1] = 5; array[1][2] = 6; array[2][0] = 7; array[2][1] = 8; array[2][2] = 9; array[3][0] = 10; array[3][1] = 11; array[3][2] = 12; int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} }; Same as
  • 8. 8 Lengths of Two-dimensional Arrays x x[0] x[1] x[2] x[0][0] x[0][1] x[0][2] x[0][3] x[1][0] x[1][1] x[1][2] x[1][3] x[2][0] x[2][1] x[2][2] x[2][3] x.length is 3 x[0].length is 4 x[1].length is 4 x[2].length is 4 int[][] x = new int[3][4];
  • 9. 9 Lengths of Two-dimensional Arrays, cont. int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} }; array.length array[0].length array[1].length array[2].length array[3].length array[4].length ArrayIndexOutOfBoundsException
  • 10. 10 Ragged Arrays Each row in a two-dimensional array is itself an array. So, the rows can have different lengths. Such an array is known as a ragged array. For example, int[][] matrix = { {1, 2, 3, 4, 5}, matrix.length is 5 {2, 3, 4, 5}, matrix[0].length is 5 {3, 4, 5}, matrix[1].length is 4 matrix[2].length is 3 {4, 5}, matrix[3].length is 2 {5} matrix[4].length is 1 };
  • 11. 11 Ragged Arrays, cont. 1 2 3 4 5 int[][] triangleArray = { {1, 2, 3, 4, 5}, {2, 3, 4, 5}, {3, 4, 5}, {4, 5}, {5} }; 1 2 3 4 1 2 3 1 2 1 2
  • 12. Processing Two-Dimensional Arrays See the examples in the text. 1. (Initializing arrays with input values) 2. (Printing arrays) 3. (Summing all elements) 4. (Summing all elements by column) 5. (Which row has the largest sum) 6. (Finding the smallest index of the largest element) 7. (Random shuffling) 12
  • 13. Initializing arrays with input values java.util.Scanner input = new Scanner(System.in); System.out.println(Enter + matrix.length + rows and + matrix[0].length + columns: ); for (int row = 0; row matrix.length; row++) { for (int column = 0; column matrix[row].length; column++) { matrix[row][column] = input.nextInt(); } } 13
  • 14. Initializing arrays with random values for (int row = 0; row matrix.length; row++) { for (int column = 0; column matrix[row].length; column++) { matrix[row][column] = (int)(Math.random() * 100); } } 14
  • 15. 15 Printing arrays for (int row = 0; row matrix.length; row++) { for (int column = 0; column matrix[row].length; column++) { System.out.print(matrix[row][column] + ); } System.out.println(); }
  • 16. 16 Summing all elements int total = 0; for (int row = 0; row matrix.length; row++) { for (int column = 0; column matrix[row].length; column++) { total += matrix[row][column]; } }
  • 17. 17 Summing elements by column for (int column = 0; column matrix[0].length; column++) { int total = 0; for (int row = 0; row matrix.length; row++) total += matrix[row][column]; System.out.println(Sum for column + column + is + total); }
  • 18. 18 Multidimensional Arrays Occasionally, you will need to represent n-dimensional data structures. In Java, you can create n-dimensional arrays for any integer n. The way to declare two-dimensional array variables and create two-dimensional arrays can be generalized to declare n-dimensional array variables and create n-dimensional arrays for n = 3. For example, the following syntax declares a three-dimensional array variable scores, creates an array, and assigns its reference to scores. double[][][] scores = new double[10][5][2];
  • 19. 19 Problem: Calculating Total Scores Objective: write a program that calculates the total score for students in a class. Suppose the scores are stored in a three-dimensional array named scores. The first index in scores refers to a student, the second refers to an exam, and the third refers to the part of the exam. Suppose there are 7 students, 5 exams, and each exam has two parts--the multiple-choice part and the programming part. So, scores[i][j][0] represents the score on the multiple-choice part for the i’s student on the j’s exam. Your program displays the total score for each student. TToottaallSSccoorree RRuunn