SlideShare une entreprise Scribd logo
1  sur  19
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

Contenu connexe

Tendances (20)

Sparse matrix and its representation data structure
Sparse matrix and its representation data structureSparse matrix and its representation data structure
Sparse matrix and its representation data structure
 
Array ppt
Array pptArray ppt
Array ppt
 
Arrays
ArraysArrays
Arrays
 
2- Dimensional Arrays
2- Dimensional Arrays2- Dimensional Arrays
2- Dimensional Arrays
 
Counting Sort and Radix Sort Algorithms
Counting Sort and Radix Sort AlgorithmsCounting Sort and Radix Sort Algorithms
Counting Sort and Radix Sort Algorithms
 
C++ Arrays
C++ ArraysC++ Arrays
C++ Arrays
 
Counting sort(Non Comparison Sort)
Counting sort(Non Comparison Sort)Counting sort(Non Comparison Sort)
Counting sort(Non Comparison Sort)
 
Linked list
Linked listLinked list
Linked list
 
Data Structures- Part5 recursion
Data Structures- Part5 recursionData Structures- Part5 recursion
Data Structures- Part5 recursion
 
Two dimensional array
Two dimensional arrayTwo dimensional array
Two dimensional array
 
Linked List - Insertion & Deletion
Linked List - Insertion & DeletionLinked List - Insertion & Deletion
Linked List - Insertion & Deletion
 
String operation
String operationString operation
String operation
 
One dimensional 2
One dimensional 2One dimensional 2
One dimensional 2
 
Selection sort(sorting algorithm in data structure) and its time complexity
Selection sort(sorting algorithm in data structure) and its time complexitySelection sort(sorting algorithm in data structure) and its time complexity
Selection sort(sorting algorithm in data structure) and its time complexity
 
Bubble sort a best presentation topic
Bubble sort a best presentation topicBubble sort a best presentation topic
Bubble sort a best presentation topic
 
Function Pointer
Function PointerFunction Pointer
Function Pointer
 
Optimal binary search tree dynamic programming
Optimal binary search tree   dynamic programmingOptimal binary search tree   dynamic programming
Optimal binary search tree dynamic programming
 
Array data structure
Array data structureArray data structure
Array data structure
 
Infix prefix postfix
Infix prefix postfixInfix prefix postfix
Infix prefix postfix
 
Arrays
ArraysArrays
Arrays
 

Similaire à Multi dimensional arrays (20)

Arrays and library functions
Arrays and library functionsArrays and library functions
Arrays and library functions
 
Chapter 13.pptx
Chapter 13.pptxChapter 13.pptx
Chapter 13.pptx
 
Chap 6 c++
Chap 6 c++Chap 6 c++
Chap 6 c++
 
Chap 6 c++
Chap 6 c++Chap 6 c++
Chap 6 c++
 
Array
ArrayArray
Array
 
Array
ArrayArray
Array
 
Lecture 15 - Array
Lecture 15 - ArrayLecture 15 - Array
Lecture 15 - Array
 
array-191103180006.pdf
array-191103180006.pdfarray-191103180006.pdf
array-191103180006.pdf
 
Array,MULTI ARRAY, IN C
Array,MULTI ARRAY, IN CArray,MULTI ARRAY, IN C
Array,MULTI ARRAY, IN C
 
A quick introduction to R
A quick introduction to RA quick introduction to R
A quick introduction to R
 
Chapter 7.1
Chapter 7.1Chapter 7.1
Chapter 7.1
 
L10 array
L10 arrayL10 array
L10 array
 
Chap1 array
Chap1 arrayChap1 array
Chap1 array
 
Arrays
ArraysArrays
Arrays
 
C (PPS)Programming for problem solving.pptx
C (PPS)Programming for problem solving.pptxC (PPS)Programming for problem solving.pptx
C (PPS)Programming for problem solving.pptx
 
Arrays in C language
Arrays in C languageArrays in C language
Arrays in C language
 
ARRAYS
ARRAYSARRAYS
ARRAYS
 
Class notes(week 4) on arrays and strings
Class notes(week 4) on arrays and stringsClass notes(week 4) on arrays and strings
Class notes(week 4) on arrays and strings
 
Class notes(week 4) on arrays and strings
Class notes(week 4) on arrays and stringsClass notes(week 4) on arrays and strings
Class notes(week 4) on arrays and strings
 
Introduction to Arrays in C
Introduction to Arrays in CIntroduction to Arrays in C
Introduction to Arrays in C
 

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