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; //declare the array name arrayName = new dataType[intExp]; //create the obj –dataType[ ] arrayName = new dataType[intExp]; //both together –dataType[ ] arrayName1, arrayName2; //declare different arrays 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(size) in array Loops used to step through elements in array and perform operations
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};// as a public member –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] + " ");
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 Parallel Arrays Arrays are parallel if corresponding components hold related information
20 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();
21 Arrays of Objects: Clock[] arrivalTimeEmp =new Clock [100];
22 Instantiating Array Objects
23 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
24 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
25 double[][]sales = new double[10][5]; Two-Dimensional Arrays
26 Accessing Two-Dimensional Array Components
27 Two-Dimensional Arrays: Special Cases
28 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
29 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;
30 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
31 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
32 Chapter Summary Arrays –Definition –Uses Different Arrays –One-dimensional –Two-dimensional –Multidimensional (n-dimensional) –Arrays of objects –Parallel arrays
33 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