Download presentation
Presentation is loading. Please wait.
1
Lecture 9 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. Java Programming: From Problem Analysis to Program Design, Second Edition
2
Lecture 9 Objectives 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. Java Programming: From Problem Analysis to Program Design, Second Edition
3
Array A structured data type with a fixed number of components.
Every component is of the same type. Components are accessed using their relative positions in the array. Java Programming: From Problem Analysis to Program Design, Second Edition
4
One-Dimensional Arrays
Syntax to instantiate an array: dataType[ ] arrayName; arrayName = new dataType[intExp] dataType[ ] arrayName = new dataType[intExp] dataType[ ] arrayName1, arrayName2; Syntax to access an array component: arrayName[indexExp] intExp = number of components in array >= 0 0 <= indexExp <= intExp Java Programming: From Problem Analysis to Program Design, Second Edition
5
Array num int[] num = new int[5];
Java Programming: From Problem Analysis to Program Design, Second Edition
6
Array list Java Programming: From Problem Analysis to Program Design, Second Edition
7
Specifying Array Size During Program Execution
int arraySize; System.out.print("Enter the size of " + "the array: "); arraySize = console.nextInt(); System.out.println(); int[] list = new int[arraySize]; Java Programming: From Problem Analysis to Program Design, Second Edition
8
Array Initialization During Declaration
double[] sales = {12.25, 32.50, 16.90, 23, 45.68}; The values, called initial values, are placed between braces and separated by commas. Here, sales[0]= 12.25, sales[1]= 32.50, sales[2]= 16.90, sales[3]= 23.00, and sales[4]= 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. Java Programming: From Problem Analysis to Program Design, Second Edition
9
Arrays and the Instance Variable length
A public instance variable length is associated with each array that has been instantiated. 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. This statement creates the array list of six components and initializes the components using the values given. Here list.length is 6. int[] list = {10, 20, 30, 40, 50, 60}; Java Programming: From Problem Analysis to Program Design, Second Edition
10
Arrays and the Instance Variable length
This statement creates the array numList of 10 components and initializes each component to 0. int[] numList = new int[10]; The value of numList.length is 10. These statements store 5, 10, 15, and 20, respectively, in the first four components of numList. numList[0] = 5; numList[1] = 10; numList[2] = 15; numList[3] = 20; You can store the number of filled elements, that is, the actual number of elements, in the array in a variable, say noOfElement. It is a common practice for a program to keep track of the number of filled elements in an array. Java Programming: From Problem Analysis to Program Design, Second Edition
11
Processing One-Dimensional Arrays
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 list[i] = console.nextInt(); System.out.print(list[i] + " "); Java Programming: From Problem Analysis to Program Design, Second Edition
12
Arrays 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; Java Programming: From Problem Analysis to Program Design, Second Edition
13
Code to Initialize Array to Specific Value (10.00)
for (index = 0; index < sales.length; index++) sales[index] = 10.00; Java Programming: From Problem Analysis to Program Design, Second Edition
14
Code to Read Data into Array
for (index = 0; index < sales.length; index++) sales[index] = console.nextDouble(); Java Programming: From Problem Analysis to Program Design, Second Edition
15
Code to Print Array for (index = 0; index < sales.length; index++)
System.out.print(sales[index] + " "); Java Programming: From Problem Analysis to Program Design, Second Edition
16
Code to Find Sum and Average of Array
for (index = 0; index < sales.length; index++) sum = sum + sales[index]; if (sales.length != 0) average = sum / sales.length; else average = 0.0; Java Programming: From Problem Analysis to Program Design, Second Edition
17
Determining Largest Element in Array
maxIndex = 0; for (index = 1; index < sales.length; index++) if (sales[maxIndex] < sales[index]) maxIndex = index; largestSale = sales[maxIndex]; Java Programming: From Problem Analysis to Program Design, Second Edition
18
Determining Largest Element in Array
Java Programming: From Problem Analysis to Program Design, Second Edition
19
Array Index Out of Bounds
An array is in bounds if: 0 <= index <= arraySize – 1 If index < 0 or index > arraySize: ArrayIndexOutOfBoundsException exception is thrown. Base address: Memory location of the first component in an array. Java Programming: From Problem Analysis to Program Design, Second Edition
20
Declaring Arrays as Formal Parameters to Methods
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); Java Programming: From Problem Analysis to Program Design, Second Edition
21
The Assignment Operators and Arrays
Java Programming: From Problem Analysis to Program Design, Second Edition
22
The Assignment Operators and Arrays
Java Programming: From Problem Analysis to Program Design, Second Edition
23
The Assignment Operators and Arrays
for (int index = 0; index < listA.length; index++) listB[index] = listA[index]; Java Programming: From Problem Analysis to Program Design, Second Edition
24
Relational Operators Arrays
if (listA == listB) ... The expression listA == listB determines if the values of listA and listB are the same, thus determining 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. Java Programming: From Problem Analysis to Program Design, Second Edition
25
Relational Operators and Arrays
boolean isEqualArrays(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 true; } if (isEqualArrays(listA, listB)) ... Java Programming: From Problem Analysis to Program Design, Second Edition
26
Methods for Array Processing
public static void fillArray(int[] list, int noOfElements) { int index; for (index = 0; index < noOfElements; index++) list[index] = console.nextInt(); } Java Programming: From Problem Analysis to Program Design, Second Edition
27
Methods for Array Processing
public static void printArray(int[] list, int noOfElements) { int index; for (index = 0; index < noOfElements; index++) System.out.print(list[index] + " "); } public static int sumArray(int[] list, int sum = 0; sum = sum + list[index]; return sum; Java Programming: From Problem Analysis to Program Design, Second Edition
28
Methods for Array Processing
public static int indexLargestElement(int[] list, int noOfElements) { int index; int maxIndex = 0; for (index = 1; index < noOfElements; index++) if (list[maxIndex] < list[index]) maxIndex = index; return maxIndex; } public static void copyArray(int[] list1, int[] list2, for (index = 0; index < noOfElements; index++) list2[index] = list1[index]; Java Programming: From Problem Analysis to Program Design, Second Edition
29
Parallel Arrays Arrays are parallel if the corresponding components hold related information. Java Programming: From Problem Analysis to Program Design, Second Edition
30
Arrays of Objects Can use arrays to manipulate objects.
Example: Create an 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(); Java Programming: From Problem Analysis to Program Design, Second Edition
31
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"; Java Programming: From Problem Analysis to Program Design, Second Edition
32
Array of String Objects
Java Programming: From Problem Analysis to Program Design, Second Edition
33
Clock[] arrivalTimeEmp = new Clock[100];
Arrays of Objects Clock[] arrivalTimeEmp = new Clock[100]; Java Programming: From Problem Analysis to Program Design, Second Edition
34
Instantiating Array Objects
for (int j = 0; j < arrivalTimeEmp.length; j++) arrivalTimeEmp[j] = new Clock(); Java Programming: From Problem Analysis to Program Design, Second Edition
35
Instantiating Array Objects
arrivalTimeEmp[49].setTime(8, 5, 10); Java Programming: From Problem Analysis to Program Design, Second Edition
36
Arrays and Variable Length Parameter List
The syntax to declare a variable length formal parameter (list) is: dataType ... identifier Java Programming: From Problem Analysis to Program Design, Second Edition
37
Arrays and Variable Length Parameter List
public static double largest(double ... numList) { double max; int index; if (numList.length != 0) max = list[0]; for (index = 1; index < numList.length; index++) if (max < numList [index]) max = numList [index]; } return max; return 0.0; Java Programming: From Problem Analysis to Program Design, Second Edition
38
Arrays and Variable Length Parameter List
double num1 = largest(34, 56); double num2 = largest(12.56, 84, 92); double num3 = largest(98.32, 77, 64.67, 56); System.out.println(largest(22.50, 67.78, 92.58, 45, 34, 56)); double[] numberList = {18. 50, 44, 56.23, 17.89 92.34, 112.0, 77, 11, 22, 86.62); System.out.println(largest(numberList)); Java Programming: From Problem Analysis to Program Design, Second Edition
39
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. Java Programming: From Problem Analysis to Program Design, Second Edition
40
foreach loop 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 on. for (double num : numList) { if (max < num) max = num; } Java Programming: From Problem Analysis to Program Design, Second Edition
41
Two-Dimensional Arrays
Data is sometimes in table form (difficult to represent using a one-dimensional array). To declare/instantiate a two-dimensional array: dataType[ ][ ] arrayName = new dataType[intExp1][intExp2]; To access a component of a two-dimensional array: arrayName[indexExp1][indexExp2]; intExp1, intExp2 >= 0 indexExp1 = row position indexExp2 = column position Java Programming: From Problem Analysis to Program Design, Second Edition
42
Two-Dimensional Arrays
Can specify different number of columns for each row (ragged arrays). Three ways to process two-dimensional arrays: Entire array. Particular row of array (row processing). Particular column of array (column processing). Processing algorithms is similar to processing algorithms of one-dimensional arrays. Java Programming: From Problem Analysis to Program Design, Second Edition
43
double[][]sales = new double[10][5];
Two-Dimensional Arrays double[][]sales = new double[10][5]; Java Programming: From Problem Analysis to Program Design, Second Edition
44
Accessing Two-Dimensional Array Components
Java Programming: From Problem Analysis to Program Design, Second Edition
45
Two-Dimensional Arrays: Special Cases
Java Programming: From Problem Analysis to Program Design, Second Edition
46
Two-Dimensional Arrays: Processing
Initialization for (row = 0; row < matrix.length; row++) for (col = 0; col < matrix[row].length; col++) matrix[row][col] = 10; Print for (row = 0; row < matrix.length; row++) { for (col = 0; col < matrix[row].length; col++) System.out.printf("%7d", matrix[row][col]); System.out.println(); } Java Programming: From Problem Analysis to Program Design, Second Edition
47
Two-Dimensional Arrays: Processing
Input for (row = 0; row < matrix.length; row++) for (col = 0; col < matrix[row].length; col++) matrix[row][col] = console.nextInt(); Sum by Row for (row = 0; row < matrix.length; row++) { sum = 0; for (col = 0; col < matrix[row].length; col++) sum = sum + matrix[row][col]; System.out.println("Sum of row " + (row + 1) + " = "+ sum); } Java Programming: From Problem Analysis to Program Design, Second Edition
48
Two-Dimensional Arrays: Processing
Sum by Column for (col = 0; col < matrix[0].length; col++) { sum = 0; for (row = 0; row < matrix.length; row++) sum = sum + matrix[row][col]; System.out.println("Sum of column " + (col + 1) + " = " + sum); } Java Programming: From Problem Analysis to Program Design, Second Edition
49
Two-Dimensional Arrays: Processing
Largest Element in Each Row for (row = 0; row < matrix.length; row++) { largest = matrix[row][0]; for (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); } Java Programming: From Problem Analysis to Program Design, Second Edition
50
Two-Dimensional Arrays: Processing
Largest Element in Each Column for (col = 0; col < matrix[0].length; col++) { largest = matrix[0][col]; for (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); } Java Programming: From Problem Analysis to Program Design, Second Edition
51
Multidimensional Arrays
Can define three-dimensional arrays or n-dimensional arrays (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 Java Programming: From Problem Analysis to Program Design, Second Edition
52
Loops to Process Multidimensional Arrays
double[][][] carDealers = new double[10][5][7]; For (i = 0; i < 10; i++) for (j = 0; j < 5; j++) for (k = 0; k < 7; k++) carDealers[i][j][k] = 10.00; Java Programming: From Problem Analysis to Program Design, Second Edition
53
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 each letter appears in text. Java Programming: From Problem Analysis to Program Design, Second Edition
54
Programming Example Solution: Text Processing
An array of 26 representing the letters in the alphabet. Three methods: copyText characterCount writeTotal Value in appropriate index is incremented using methods and depends on character read from text. Java Programming: From Problem Analysis to Program Design, Second Edition
55
Lecture 8 Summary Arrays Different arrays Definition Uses
One-dimensional Two-dimensional Multidimensional (n-dimensional) Arrays of objects Parallel arrays Java Programming: From Problem Analysis to Program Design, Second Edition
56
Lecture 8 Summary Declaring arrays Instantiating arrays
Processing arrays Entire array Row processing Column processing Common operations and methods performed on arrays Manipulating data in arrays Java Programming: From Problem Analysis to Program Design, Second Edition
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.