Presentation is loading. Please wait.

Presentation is loading. Please wait.

Array 1 ARRAY. array 2 Learn about arrays. Explore how to declare and manipulate data into arrays. Understand the meaning of “array index out of bounds.”

Similar presentations


Presentation on theme: "Array 1 ARRAY. array 2 Learn about arrays. Explore how to declare and manipulate data into arrays. Understand the meaning of “array index out of bounds.”"— Presentation transcript:

1 array 1 ARRAY

2 array 2 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. 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. Chapter Objectives

3 array 3 Why do need array Let consider the following problem How do we write Java program that read five numbers, find the sum, and prints the numbers in reverse order Normally, we need to store all the numbers in 5 variables before we can print it in reverse order Let see the following code. (next slide).

4 array 4 import java.util.*; public class ReverseOrder { public static void main(String [] args) { int item0, item1, item2, item3, item4; int sum; Scanner input = new Scanner(System.in); System.out.println("Enter five integers one number per line"); item0 = input.nextInt(); item1 = input.nextInt(); item2 = input.nextInt(); item3 = input.nextInt(); item4 = input.nextInt(); sum = item0 + item1 + item2 + item3 + item4; System.out.println("The sum of the numbers = " + sum); System.out.println("The numbers in reverse order are: "); System.out.println(item4 + " " + item3 + " " + item2 + " " + item1 + " " + item0); }

5 array 5 We need 5 variables to hold the data What happen if we want to read 100 (or more) numbers and print them in reverse order. So, we need 100 variables to hold all data. (item0, item1, item2, item3, item4, item5,…100) For large of data, this code is not desirable. We need an ARRAY. continue

6 array 6 What is 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. Types of array - One-Dimensional array - Two-Dimensional array - Multi Dimensional array

7 array 7 One-Dimensional Arrays Syntax to declare an array: [] = new [intExp]; Or []= new [intExp]; 1. dataType: a type of data will be store in array or component type 2. arrayName: a reference variable for array 3. intExp: size of an array (> 0) Syntax to access an array component: - arrayName[indexExp]

8 array 8 Example int[] num = new int[5];or int num[] = new int[5]; This statement declare and creates the array num of 5 components. Each component is int data type The components are num[0], num[1], num[2], num[3], num[4] The value in square bracket [ ] is call index and it start at 0 num

9 array 9 continue element index In java, [ ] is call as array subscripting operator Items in an array is called elements

10 array 10 Continue Array of five integers called test Array of five characters called grade test[0] = 85; test[1] = 98; test[2] = 75; test[3] = 87; test[4] = 68; grade[0] = ‘B’; grade[1] = ‘C’; grade[2] = ‘B’; grade[3] = ‘A’; grade[4] = ‘C’;

11 array 11 Assign a value into array int[] list = new int[10]; Assume the declaration as above. Statement; list[3] = 10; list[6] = 35; list[5] = list[3] + list[6]; will store 10, 45 and 35 into the array in list[3], list[5] and list[6] respectively. (see next figure)

12 array 12

13 array 13 Specifying Array Size During Program Execution (dynamic array) Array that are created during program execution is called dynamic array Enables user to specify the size of the array int arraySize; System.out.print("Enter the size of the array: "); arraySize = input.nextInt(); int[] list = new int[arraySize]; The system use the value of arraysize to instantiate the object list

14 array 14 Array Initialization During Declaration We also can assign a value into the array during declaration double[]sales = {12.25, 32.50, 16.90, 23.00, 45.68}; The values, called initial values, are placed between braces and separated by commas 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.

15 array 15 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. int[] list = {10, 20, 30, 40, 50, 60}; This statement creates the array list of six components and initializes the components using the values given. Here list.length is 6.

16 array 16 Loops and Arrays Loops can be used to process array in several ways: 1. Initialing an array to a specific value 2. Input data into an array 3. Printing an array 4. Find the sum and average of an array 5. Determine the largest element in the array

17 array 17 1.Initializing an array to a specific value eg. to initialize every component of the array sale with a value of 10.00 double[] sales = new double[10]; int index; for (index = 0; index < sales.length;index++) sales[index] = 10.00;

18 array 18 2. Input data into an array double[] sales = new double[10]; int index; for (index = 0; index < sales.length;index++) sales[index] = input.nextDouble(); 3. Printing an array double[] sales = new double[10]; int index; for(index = 0; index < sales.length;index++) System.out.print(sales[index] + " ");

19 array 19 4. Find the sum and average of an array double[] sales = new double[10]; int index, sum ; double average; sum = 0; for(index = 0; index < sales.length;index++) sum = sum + sales[index]; if (sales.length != 0) average = sum / sales.length; else average = 0.0;

20 array 20 5. Determining the largest element in the array double[] sales = new double[10]; int index, maxIndex; double largestSale; maxIndex = 0; for(index = 1; index<sales.length;index++) if (sales[maxIndex] < sales[index]) maxIndex = index; largestSale = sales[maxIndex];

21 array 21 continue Suppose the array sales is as figure 9.5

22 array 22 Array Index Out of Bounds An array is in bounds if: 0 <= index <= arraySize – 1 An array is in out bounds if: index arraySize If an array is out of bounds; i.ArrayIndexOutOfBoundsException exception is thrown. ii. The program will terminates with an appropriate error message

23 array 23 example Consider the following declaration: double[] num = double[10]; int i; The component num[i] is valid if i = 0, 1, 2….9 When i = 10, the component num[i] is invalid (the index is out of bounds)

24 array 24 Consider the following loops for (i = 0; i <= 10; i++) list[i] = 5; When i = 10; list[i] = list[10] = 5; The program tries to access list[10] but does not exist We say the index is out of bound 5 5 5 5 5 5 5 5 5 5 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]

25 array 25 Manipulate data into arrays Searching a value Calculation Reverse element

26 array 26 Searching a value Eg.- A method to search an array of integer The Search method return the location of the first array element equal to the search value int Search (int[ ] num, int search value){ int location; for (i=0; i =num.length; i++) if(num[i] = = search Value) location = i; return location; }

27 array 27 Assume the num values as below: int[] num = {10,20,30,40,50,60,70,80,90,100} If searchValue is 60, the method will return 5 to Search method. 40 10 20 30 50 60 70 80 90 100 num[0] num[1] num[2] num[3] num[4] num[5] num[6] num[7] num[8] num[9] Location, i

28 array 28 Calculation in array Eg:- add a number from Array1 and Array2, and store the total in Array3 Assume Array1, Array2 and Array3 declarations as below: int[ ] Array1 = {10,20,30,40,50,60,70,80,90,100}; int[ ] Array2 = {11,22,33,44,55,66,77,88,99,110}; int[ ] Array3 = new int[10];

29 array 29 + 1021 42 63 84 : : : : : : 11 20 30 40 50 60 70 80 90 100 22 33 44 55 66 77 88 99 110 Array[0] Array[1] Array[2] Array[3] Array[4] Array[5] Array[6] Array[7] Array[8] Array[9] Array[0] Array[1] Array[2] Array[3] Array[4] Array[5] Array[6] Array[7] Array[8] Array[9] Array[0] Array[1] Array[2] Array[3] Array[4] Array[5] Array[6] Array[7] Array[8] Array[9]

30 array 30 public static void ArraySum() { int[] Array1 = {10,20,30,40,50,60,70,80,90,100}; int[] Array2 = {11,22,33,44,55,66,77,88,99,110}; int[] Array3 = new int[10]; int i; for (i=0; i < 10; i++) { Array3[i] = Array1[i] + Array2[i]; System.out.println("Array3["+i+"]=“ +Array3[i]); } Output Array3[0] = 21 Array3[1] = 42 Array3[2] = 63 Array3[3] = 84 Array3[4] = 105 Array3[5] = 126 Array3[6] = 147 Array3[7] = 168 Array3[8] = 189 Array3[9] = 210

31 array 31 for (i=0; i < 10; i++) Array3[i] = Array1[i] + Array2[i]; Values of Array3 during for loop iterations iArray1[i]Array2[i]Array3[i] 0101121 1202242 2303363 3404484 45055105 56066126 67077147 78088168 89099189 9100110210

32 array 32 Reverse element Eg- Read 10 integer numbers, and print the numbers in reverse order public static void ReverseOrder() { int item[] = new int[10]; int i; //Read integers number and store in item[i] System.out.println("Enter ten integers number:"); for(i = 0; i < 10; i++) item[i] = input.nextInt(); //Print the output in reverse order are:"); System.out.println("The numbers in reverse order are:"); for(i = 9; i >= 0; i--) System.out.println(item[i]); }

33 array 33 Output Enter ten integers number: 56 65 67 43 64 76 39 77 47 84 The numbers in reverse order are: 84 47 77 39 76 64 43 67 65 56

34 array 34 Arrays as Formal Parameters to Methods Arrays can be passed as parameter to methods Eg. public static void arrayAsFormalParameter(int[] listA, double[] listB, int num) { //… } Formal parameter The above method have 3 formal parameters – listA, listB and num

35 array35 continue Statement to call the method arrayAsFormalParameter(intList, doubleNumList, number); Actual parameter int[] intList = new int[10]; double[] doubleNumList = new double[15]; int number; Suppose we have the following statement

36 array 36 example 1 public class PassingParameter { public static void main(String[] args) { int num[] = {10,20,30,40,50,60,70}; System.out.println(“ The number of elements: " + num.length); printArray(num); } public static void printArray(int[] number) { for (int index = 0; index < number.length; index++) System.out.println(number[index] + ""); } Passing parameter OUTPUT: The number of elements: 7 10 20 30 40 50 60 70

37 array 37 public static void main(String[] args) { int[] listA = {11,22,36,42,15,46,27,48,19,10} int[] listB = new int[10]; int Total, Largest; // call sumArray method and return a value to Total Total = sumArray (listA, listA.length); System.out.println(“\n The sum of ListA is :” + Total); // call indexLargestElement and return the indux value to Largest indLargest = indexLargestElement (listA, list.length); System.out.println(“\n The largest element is :” + listA[Largest]); example 2 continue

38 array 38 public static int sumArray(int[] list, int noOfElements) { int index; int sum = 0; for (index = 0; index < noOfElement; index++) sum = sum + list[index]; return sum; } public static int indexLargestElement(int[] list, int noOfElement) { int index; int maxIndex = 0; for (index = 1; index < noOfElement; index++) if(list[maxIndex] < list[index]) maxIndex = index; return maxIndex; }

39 array 39 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”;

40 array 40 Array of Object Can use arrays to manipulate objects. Example: Create an array named array1 with N object 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(); Eg: a) clock – hour, minute, second b) student – name, matric, age

41 array 41 import java.util.*; public class ArrayOfObj { int N = 3; StudentInfo[] student = new StudentInfo[N]; public static void main (String[] args) { int N = 3; int i; ArrayOfObj arr = new ArrayOfObj(); StudentInfo[] Std = new StudentInfo[N]; Std = arr.InputData(); arr.PrintInfo(Std); } example Input students information's (name,matric, age) into array and print out the output class StudentInfo{ String name; String matric; int age; }

42 array 42 public StudentInfo[] InputData() int i; StudentInfo[] student = new StudentInfo[N]; System.out.println("\nEnter Students Information "); System.out.println("_______________________ ____ \n"); for (i = 0; i< N; i++) { student[i] = new StudentInfo(); System.out.print("Name : "); student[i].name = input.readLine(); System.out.print("Matric No : "); student[i].matric = input.nextLine(); System.out.print("Age : "); student[i].age = input.nextInt(); System.out.println(); } return student; } public void PrintInfo(StudentInfo[] Std) { int i; System.out.println("List of students :\n"); for (i=0;i<N;i++) { System.out.println((i+1) + ". " + Std[i].matric + " " + Std[i].name + " " + " " + Std[i].age); }

43 array 43 Enter Students Information ___________________________ Name : BAHARUDIN OSMAN Matric No : S11111 Age : 30 Name : BADRUL HAZMI Matric No : S23212 Age : 28 Name : NUR BADRINA Matric No : S34213 Age : 27 List of students : 1. S11111 BAHARUDIN OSMAN 30 2. S23212 BADRUL HAZMI 28 3. S34213 NUR BADRINA 27 output

44 array 44 Statement below create an array of arrivalTimeEmp Clock[] arrivalTimeEmp = new Clock[100];

45 array 45 Instantiating of Array Objects for (int j = 0; j < arrivalTimeEmp.length; j++) arrivalTimeEmp[j] = new Clock();

46 array 46 Continue Setting a time for index 49 arrivalTimeEmp[49].setTime(8, 5, 10);

47 array 47 Delete Object Step i.Identify the element to delete ii.Point the object to delete null iii.Move up all elements (after deleted object) iv.Point the last element to null

48 array 48 Example Step 1 : Identify the element to delete Step 2 : Point the object to delete to null - if the sixth element to delete for (i=0; i < student.length; i++) if(i==5) then student[i] = null null student Name Matric IC Name Matric IC Name Matric IC

49 array 49 element A element B element C element D element E element element G element H element I element J [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] element A element B element C element D element E element G element H element I element J [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] iii. Move up all elements (after deleted object) iv. Point the last element to null for (i = 0; i < student.length; i++) if (i= =5) student[i] = student[student.length -1) if (i= = (student.length – 1)) student[i] = null Set the last element to null null before student after

50 array 50 Two-Dimension Array A collection of a fixed number of components arranged in rows and columns. All components are in same type. Data is sometimes in table form (difficult to represent using a one-dimensional array). 10112145 20224234 30336621 40448432 505510513 606612621 707714733 808816822 9099189123

51 array 51 continue To declare/instantiate a two-dimensional array: dataType[ ][ ] arrayName = new data Type[intRow][intCol]; intRow => number of rows intCol => number of columns intRow and intCol > 0 Eg. double[ ][ ] sales = new double[10][15];

52 array 52 double[ ][ ] sales = new double[10][5];

53 array 53 Accessing Array Components To access a component of a two-dimensional array: arrayName[indexExp1][indexExp2]; indexExp1 = row position indexEXp2 = column position Eg. The above statement stores 25.75 into row number 5 and column number 3; (the 6 th row and the 4 th column) sales [5][3] = 25.75;

54 array 54 Sales [5][3] = 25.75;

55 array 55 Array Initialization During Declaration 2-Dimensional array can be initialized during declaration Eg. int[ ][ ] board = { {2,3,1}, {15,25,13}, {20,4,7}, {11,18,14}};

56 array 56 Processing 2-Dimensional Array eg. Initialization Print Input data/store data into 2-Dimensional array Sum the data Find the largest element Suppose the declaration as below: int row; int column; int matix = new int[7][6];

57 array 57 Initialization for (row = 0; row < matrix.length; row++) for (col = 0; col < matrix[row].length; col++) matrix[row][col] = 10; matrix

58 array 58 Print for (row = 0; row < matrix.lenth; row++) { for ( col = 0; col < matrix[row].length; col++) System.out.println(matrix[row][col]); System.out.println(); } Read Data for (row = 0; row < matrix.length; row++) for (col = 0; col < matrix[row].length; col++) matrix[row][col] = Integer.parseInt(keyboard.readLine())

59 array 59 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); }

60 array 60 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 Multidimensional Arrays

61 array 61 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; Loops to Process Multidimensional Arrays


Download ppt "Array 1 ARRAY. array 2 Learn about arrays. Explore how to declare and manipulate data into arrays. Understand the meaning of “array index out of bounds.”"

Similar presentations


Ads by Google