1 Chapter 9 Arrays Java Programming from Thomson Course Tech, adopted by kcluk
2 Array Definition: 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
3 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
4 Array num: int[] num = new int[5];
5 Array list
6 Arrays Not necessary to know array size at compile time arrayName.length returns the number of components in array Loops used to step through elements in array and perform operations download & run Supple. Temperature1
7 Arrays Some operations on arrays: –Initialize –Input data –Output stored data –Find largest/smallest/sum/average of elements
8 How To Specify Array Size During Program Execution int arraySize; //Line 1 System.out.print("Enter the size of the array: "); //Line 2 arraySize = Integer.parseInt(keyboard.readLine()); //Line 3 System.out.println(); //Line 4 int[] list = new int[arraySize]; //Line 5
9 Instance Variable length Contains size of array public member Can be directly accessed in program using array name and dot operator Example –If: int[] list = {10, 20, 30, 40, 50, 60}; –Then: list.length is 6
10 Code to Initialize Array to Specific Value (10.00) for(index = 0; index < sale.length; index++) sale[index] = 10.00;
11 Code to Read Data into Array for(index = 0; index < sale.length; index++) sale[index] = Integer.parseInt(keyboard.readLine());
12 Code to Print Array for(index = 0; index < sale.length; index++) System.out.print(sale[index] + " "); download & run Supple. Temperature2
13 Code to Find Sum and Average of Array sum = 0; for(index = 0; index < sale.length; index++) sum = sum + sale[index]; if(sale.length != 0) average = sum / sale.length; else average = 0.0;
14 Determining Largest Element in Array maxIndex = 0; for(index = 1; index < sale.length; index++) if(sale[maxIndex] < sale[index]) maxIndex = index; largestSale = sale[maxIndex];
15 Determining Largest Element in Array
16 Array Index Out of Bounds Array in bounds if: 0 <= index <= arraySize – 1 If index arraySize: ArrayIndexOutOfBoundsException exception is thrown Base address: memory location of first component in array
17 The Assignment Operator, the Relational Operator, and Arrays
18 The Assignment Operator, the Relational Operator, and Arrays
19 Methods for Array Processing
20 Methods for Array Processing
21 Methods for Array Processing
22 Parallel Arrays Arrays are parallel if corresponding components hold related information download & run the prog on ~cim
23 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();
24 Arrays of Objects: Clock[] arrivalTimeEmp =new Clock [100];
25 Instantiating Array Objects
26 Two-Dimensional Arrays Data is sometimes in table form (difficult to represent using one-dimensional array) To declare/instantiate two-dimensional array: dataType[ ][ ] arrayName = new dataType[intExp1][intExp2]; To access a component of a 2-dimensional array: arrayName[indexExp1][indexExp2]; intExp1, intExp2 >= 0 indexExp1 = row position indexExp2 = column position
27 Two-Dimensional Arrays Can specify different number of columns for each row (ragged arrays) 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
28 double[][]sales = new double[10][5]; Two-Dimensional Arrays
29 Accessing Two-Dimensional Array Components
30 Two-Dimensional Arrays: Special Cases
31 Multidimensional Arrays Can define three-dimensional arrays or n-dimensional array (n can be any number) Syntax to declare and instantiate array: d ataType[ ][ ]…[ ] 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
32 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;
33 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
34 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
35 Chapter Summary Arrays –Definition –Uses Different Arrays –One-dimensional –Two-dimensional –Multidimensional (n-dimensional) –Arrays of objects –Parallel arrays
36 Chapter Summary Declaring arrays Instantiating arrays Processing arrays –Entire array –Row processing –Column processing Common operations and methods performed on arrays Manipulating data in arrays