![Page 1: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/1.jpg)
Java Programming: From Problem Analysis to Program Design, 4e
Chapter 9Arrays
![Page 2: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/2.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 2
Chapter Objectives
• Learn about arrays
• Explore how to declare and manipulate data into arrays
• Understand the meaning of “array index out of bounds”
• Become familiar with the restrictions on array processing
![Page 3: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/3.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 3
Chapter Objectives (continued)
• Discover how to pass an array as a parameter to a method
• Discover how to manipulate data in a two-dimensional array
• Learn about multidimensional arrays
![Page 4: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/4.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 4
Array
• Definition: structured data type with a fixed number of elements
• Elements of an array are also called components of the array
• Every element is of the same type
• Elements are accessed using their relative positions in the array
![Page 5: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/5.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 5
One-Dimensional Arrays
![Page 6: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/6.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 6
One-Dimensional Arrays (continued)
![Page 7: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/7.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 7
One-Dimensional Arrays (continued)
•intExp = number of components in array >= 0•0 <= indexExp <= intExp
![Page 8: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/8.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 8
• Array num:int[] num = new int[5];
Arrays
![Page 9: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/9.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 9
• Array num:int[] num = new int[5];
Arrays (continued)
![Page 10: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/10.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 10
Array List
![Page 11: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/11.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 11
Array List (continued)
![Page 12: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/12.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 12
Array List (continued)
![Page 13: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/13.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 13
Array List (continued)
![Page 14: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/14.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 14
Specifying Array Size During Program Execution
![Page 15: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/15.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 15
• The initializer list contains values, called initial values, that are placed between braces and separated by commas
•sales[0]= 12.25, sales[1]= 32.50, sales[2]= 16.90, sales[3]= 23.00, and sales[4]= 45.68
Array Initialization During Declaration
![Page 16: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/16.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 16
Array Initialization During Declaration (continued)
• When declaring and initializing arrays, the size of the array is determined by the number of initial values within the braces
• If an array is declared and initialized simultaneously, we do not use the operator new to instantiate the array object
![Page 17: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/17.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 17
• Associated with each array that has been instantiated, there is a public (final) instance variable length
• The variable length contains the size of the array • The variable length can be directly accessed in a
program using the array name and the dot operator
int[] list = {10, 20, 30, 40, 50, 60};
Arrays and the Instance Variable length
![Page 18: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/18.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 18
Arrays and the Instance Variable length (continued)
• This statement creates the array list of six components and initializes the components using the values given– Here list.length is 6
int[] numList = new int[10];
• This statement creates the array numList of 10 components and initializes each component to 0
![Page 19: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/19.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 19
• The value of numList.length is 10 numList[0] = 5;numList[1] = 10;numList[2] = 15;numList[3] = 20;
• These statements store 5, 10, 15, and 20, respectively, in the first four components of numList
• You can store the number of filled elements, that is, the actual number of elements, in the array in a variable, say numOfElement
• It is a common practice for a program to keep track of the number of filled elements in an array
Arrays and the Instance Variable length (continued)
![Page 20: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/20.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 20
• Loops used to step through elements in array and perform operations
int[] list = new int[100];int i;
for (i = 0; i < list.length; i++) //process list[i], the (i + 1)th //element of list
for (i = 0; i < list.length; i++) list[i] = console.nextInt();
for (i = 0; i < list.length; i++) System.out.print(list[i] + " ");
Processing One-Dimensional Arrays
![Page 21: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/21.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 21
Arrays (continued)
• Some operations on arrays– Initialize – Input data– Output stored data– Find largest/smallest/sum/average of elements
double[] sales = new double[10];int index;double largestSale, sum, average;
![Page 22: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/22.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 22
Code to Initialize Array to Specific Value (10.00)
for (int index = 0; index < sales.length; index++) sales[index] = 10.00;
![Page 23: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/23.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 23
Code to Read Data into Array
for (int index = 0; index < sales.length; index++) sales[index] = console.nextDouble();
![Page 24: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/24.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 24
Code to Print Array
for (int index = 0; index < sales.length; index++) System.out.print(sales[index] + " ");
![Page 25: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/25.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 25
Code to Find Sum and Average of Array
sum = 0;for (int index = 0; index < sales.length; index++) sum = sum + sales[index];
if (sales.length != 0) average = sum / sales.length;else average = 0.0;
![Page 26: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/26.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 26
Determining Largest Element in Array
maxIndex = 0;
for (int index = 1; index < sales.length; index++) if (sales[maxIndex] < sales[index]) maxIndex = index;
largestSale = sales[maxIndex];
![Page 27: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/27.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 27
Determining Largest Element in Array (continued)
![Page 28: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/28.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 28
Determining Largest Element in Array (continued)
![Page 29: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/29.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 29
Array Index Out of Bounds
• Array in bounds if:0 <= index <= arraySize – 1
• If index < 0 or index > arraySize:
ArrayIndexOutOfBoundsException exception is thrown
• Base address: memory location of first component in array
![Page 30: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/30.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 30
Declaring Arrays as Formal Parameters to Methods
• A general syntax to declare an array as a formal parameter dataType[] arrayName
public static void arraysAsFormalParameter(int[] listA, double[] listB, int num){ //...}int[] intList = new int[10];double[] doubleNumList = new double[15];int number;
arraysAsFormalParameter(intList, doubleNumList, number);
![Page 31: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/31.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 31
The Assignment Operators and Arrays
![Page 32: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/32.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 32
The Assignment Operators and Arrays (continued)
![Page 33: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/33.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 33
The Assignment Operators and Arrays (continued)
![Page 34: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/34.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 34
Relational Operators and Arrays
• if (listA == listB)...- The expression listA == listB determines if the values of listA and listB are the same and thus determines whether listA and listB refer to the same array- To determine whether listA and listB contain the same elements, you need to compare them component by component - You can write a method that returns true if two int arrays contain the same elements
![Page 35: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/35.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 35
Relational Operators and Arrays (continued)
boolean areEqualArrays(int[] firstArray, int[] secondArray){ if (firstArray.length != secondArray.length) return false;
for (int index = 0; index < firstArray.length; index++) if (firstArray[index] != secondArray[index]) return false; return true;}
if (areEqualArrays(listA, listB))...
![Page 36: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/36.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 36
Arrays as Parameter Methods
![Page 37: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/37.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 37
Methods for Array Processing
![Page 38: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/38.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 38
Methods for Array Processing (continued)
![Page 39: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/39.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 39
Methods for Array Processing (continued)
![Page 40: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/40.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 40
Methods for Array Processing (continued)
![Page 41: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/41.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 41
• Suppose that you want to determine whether 27 is in the list; • First you compare 27 with list[0]• Because list[0] ≠ 27, you then compare 27 with list[1]
• Because list[1] ≠ 27, you compare 27 with list[2]; Because list[2] = 27, the search stops
• This search is successful
![Page 42: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/42.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 42
• Search for 10• Search starts at the first element in the list, that is, at list[0]
• This time, the search item, which is 10, is compared with every item in the list; eventually, no more data is left in the list to compare with the search item; this is an unsuccessful search
![Page 43: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/43.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 43
public static int seqSearch(int[] list, int listLength, int searchItem){ int loc; boolean found = false; loc = 0; while (loc < listLength && !found) if (list[loc] == searchItem) found = true; else loc++;
if (found) return loc; else return -1;}
![Page 44: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/44.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 44
Arrays of Objects
• Can use arrays to manipulate objects
• Example: create array named array1 with N objects of type T
T[] array1 = new T[N] • Can instantiate array1 as follows:
for (int j = 0; j <array1.length; j++)
array1[j] = new T();
![Page 45: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/45.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 45
Array of String Objects
String[] nameList = new String[5];
nameList[0] = "Amanda Green";
nameList[1] = "Vijay Arora";
nameList[2] = "Sheila Mann";
nameList[3] = "Rohit Sharma";
nameList[4] = "Mandy Johnson";
![Page 46: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/46.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 46
Array of String Objects (continued)
![Page 47: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/47.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 47
Clock[] arrivalTimeEmp = new Clock[100]; Arrays of Objects (continued)
![Page 48: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/48.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 48
Instantiating Array Objectsfor (int j = 0; j < arrivalTimeEmp.length; j++) arrivalTimeEmp[j] = new Clock();
![Page 49: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/49.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 49
arrivalTimeEmp[49].setTime(8, 5, 10);
Instantiating Array Objects (continued)
![Page 50: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/50.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 50
Arrays and Variable Length Parameter List
• The syntax to declare a variable length formal parameter (list) is:
dataType ... identifier
![Page 51: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/51.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 51
Arrays and Variable Length Parameter List (continued)
![Page 52: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/52.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 52
Arrays and Variable Length Parameter List (continued)
![Page 53: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/53.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 53
Arrays and Variable Length Parameter List (continued)
• A method can have both a variable length formal parameter and other formal parameters; consider the following method heading: public static void myMethod(String name,
double num, int ... intList)• The formal parameter name is of type String, the
formal parameter num is of type double, and the formal parameter intList is of variable length
• The actual parameter corresponding to intList can be an int array or any number of int variables and/or int values
![Page 54: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/54.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 54
Arrays and Variable Length Parameter List (continued)
• A method can have at most one variable length formal parameter
• If a method has both a variable length formal parameter and other types of formal parameters, then the variable length formal parameter must be the last formal parameter of the formal parameter list
![Page 55: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/55.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 55
foreach Loop
• The syntax to use this for loop to process the elements of an array is:
for (dataType identifier : arrayName) statements
•identifier is a variable, and the data type of identifier is the same as the data type of the array components
![Page 56: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/56.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 56
foreach loop (continued)sum = 0; for (double num : list) sum = sum + num; • The for statement in Line 2 is read: for each num in list• The identifier num is initialized to list[0]• In the next iteration, the value of num is list[1], and so
onfor (double num : numList){ if (max < num) max = num;}
![Page 57: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/57.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 57
Two-Dimensional Arrays
![Page 58: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/58.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 58
Two-Dimensional Arrays (continued)
![Page 59: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/59.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 59
double[][] sales = new double[10][5];
Two-Dimensional Arrays (continued)
![Page 60: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/60.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 60
• intExp1, intExp2 >= 0• indexExp1 = row position• indexExp2 = column position
Accessing Array Elements
![Page 61: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/61.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 61
Accessing Array Elements (continued)
![Page 62: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/62.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 62
• This statement declares and instantiates a two-dimensional array matrix of 20 rows and 15 columns
• The value of the expression:matrix.length is 20, the number of rows
Two-Dimensional Arrays and the Instance Variable length
![Page 63: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/63.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 63
Two-Dimensional Arrays and the Instance Variable length
(continued) • Each row of matrix is a one-dimensional array; matrix[0], in fact, refers to the first row
• The value of the expression:matrix[0].lengthis 15, the number of columns in the first row
• matrix[1].length gives the number of columns in the second row, which in this case is 15, and so on
![Page 64: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/64.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 64
Two-Dimensional Arrays: Special Cases
![Page 65: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/65.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 65
•Create columns
Two-Dimensional Arrays: Special Cases (continued)
![Page 66: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/66.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 66
Two-Dimensional Array Initialization During Declaration
![Page 67: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/67.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 67
• To initialize a two-dimensional array when it is declared:
- The elements of each row are enclosed within braces and separated by commas- All rows are enclosed within braces
Two-Dimensional Array Initialization During Declaration (continued)
![Page 68: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/68.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 68
Two-Dimensional Array Initialization During Declaration
(continued)
![Page 69: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/69.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 69
Two-Dimensional Arrays (continued)
• Three ways to process 2-D arrays– Entire array– Particular row of array (row processing)– Particular column of array (column processing)
• Processing algorithms similar to processing algorithms of one-dimensional arrays
![Page 70: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/70.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 70
Two-Dimensional Arrays: Processing
Initialization
for (int row = 0; row < matrix.length; row++) for (int col = 0; col < matrix[row].length; col++) matrix[row][col] = 10;Printfor (int row = 0; row < matrix.length; row++){ for (int col = 0; col < matrix[row].length; col++) System.out.printf("%7d", matrix[row][col]); System.out.println();}
![Page 71: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/71.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 71
Inputfor (int row = 0; row < matrix.length; row++) for (int col = 0; col < matrix[row].length; col++) matrix[row][col] = console.nextInt();
Sum by Rowfor (int row = 0; row < matrix.length; row++){ sum = 0; for (int col = 0; col < matrix[row].length; col++) sum = sum + matrix[row][col]; System.out.println("Sum of row " + (row + 1) + " = "+ sum);}
Two-Dimensional Arrays: Processing (continued)
![Page 72: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/72.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 72
Sum by Column for (int col = 0; col < matrix[0].length; col++){ sum = 0; for (int row = 0; row < matrix.length; row++) sum = sum + matrix[row][col]; System.out.println("Sum of column " + (col + 1) + " = " + sum);}
Two-Dimensional Arrays: Processing (continued)
![Page 73: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/73.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 73
Largest Element in Each Row
for (int row = 0; row < matrix.length; row++){ largest = matrix[row][0]; for (int col = 1; col < matrix[row].length; col++) if (largest < matrix[row][col]) largest = matrix[row][col]; System.out.println("The largest element of row " + (row + 1) + " = " + largest);}
Two-Dimensional Arrays: Processing (continued)
![Page 74: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/74.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 74
Largest Element in Each Column
for (int col = 0; col < matrix[0].length; col++){ largest = matrix[0][col]; for (int row = 1; row < matrix.length; row++) if (largest < matrix[row][col]) largest = matrix[row][col]; System.out.println("The largest element of col " + (col + 1) + " = " + largest);}
Two-Dimensional Arrays: Processing (continued)
![Page 75: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/75.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 75
![Page 76: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/76.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 76
![Page 77: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/77.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 77
![Page 78: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/78.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 78
Multidimensional Arrays
• Can define three-dimensional arrays or n-dimensional array (n can be any number)
• Syntax to declare and instantiate array
dataType[][]…[] arrayName = new dataType[intExp1][intExp2]…[intExpn];
• Syntax to access component
arrayName[indexExp1][indexExp2]…[indexExpn]
• intExp1, intExp2, ..., intExpn = positive integers• indexExp1,indexExp2, ..., indexExpn = non-negative integers
![Page 79: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/79.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 79
Loops to Process Multidimensional Arrays
double[][][] carDealers = new double[10][5][7];
for (int i = 0; i < 10; i++) for (int j = 0; j < 5; j++) for (int k = 0; k < 7; k++) carDealers[i][j][k] = 10.00;
![Page 80: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/80.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 80
Programming Example: Text Processing
• Program: reads given text; outputs the text as is; prints number of lines and number of times each letter appears in text
• Input: file containing text to be processed
• Output: file containing text, number of lines, number of times letter appears in text
![Page 81: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/81.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 81
Programming Example Solution: Text Processing
• An array of 26 representing the letters in the alphabet
• Three methods– copyText – characterCount – writeTotal
• Value in appropriate index incremented using methods and depending on character read from text
![Page 82: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/82.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 82
Chapter Summary
• Arrays– Definition– Uses
• Different Arrays– One-dimensional– Two-dimensional– Multidimensional (n-dimensional)– Arrays of objects– Parallel arrays
![Page 83: Java Programming: From Problem Analysis to Program Design, 4e Chapter 9 Arrays](https://reader036.vdocuments.site/reader036/viewer/2022062321/56649ed85503460f94be6c36/html5/thumbnails/83.jpg)
Java Programming: From Problem Analysis to Program Design, 4e 83
Chapter Summary (continued)
• Declaring arrays• Instantiating arrays• Processing arrays
– Entire array– Row processing– Column processing
• Common operations and methods performed on arrays
• Manipulating data in arrays