ARRAYS in JAVA
TOPICS TO COVER:-- Array declaration and use. One-Dimensional Arrays. Passing arrays and array elements as parameters Arrays of objects Searching an array Sorting elements in an array
ARRAYS An array is group of like-typed variables that are referred to by a common name. Each value has a numeric index The entire array has a single name 0 1 2 3 4 5 6 scores 50 12 45 78 66 100 125 An array can be of any type. An array of size N is indexed from zero to N-1 Specific element in an array is accessed by its index. Can have more than one dimension INTEGER FLOAT
2D Array Elements Requires two indices Row Which cell is CHART [3][2]? Column [0] [1] [2] [3] [4] [5] [0] 0 97 90 268 262 130 [1] 97 0 74 337 144 128 [2] 90 74 0 354 174 201 [3] 268 337 354 0 475 269 [4] 262 144 174 475 0 238 [5] 130 128 201 269 238 0 CHART
Arrays A particular value in an array is referenced using the array name followed by the index in brackets For example, the expression scores[2] refers to the value 45 (the 3rd value in the array) 0 1 2 3 4 5 6 5 50 12 45 78 66 100 125
DECLARAING ARRAYS The general form of 1-d array declaration is:- type var_name[ ]; 1. Even though an array variable scores is declared, but there int, float, char array name E.g.:--- int scores [ ]; is no array actually existing. 2. score is set to NULL, i.e. an array with NO VALUE. scores int[] scores = new int[10]; NULL To link with actual, physical array of integers.
Declaring Arrays Some examples of array declarations: int[ ] numbers; int numbers[]; double[] prices = new double[500]; boolean[] flags; flags = new boolean[20]; int[] numbers1, numbers2, numbers3; int numbers1[], numbers2, numbers3; This declares one reference variable to an integer array and two primitive integer variables 8
ARRAY INITIALIZATION The size of the array is determined by the number of items in the initializer list. An initializer list can only be used only in the array declaration Giving values into the array created is known as INITIALIZATION. The values are delimited by braces and separated by commas Examples: int[ ] units = {147, 323, 89, 933, 540, 269, 97, 114, 298, 476}; char[ ] lettergrades = {'A', 'B', 'C', 'D', F'}; Note that when an initializer list is used: the new operator is not used no size value is specified
ACCESSING ARRAY A specific element in an array can be accessed by specifying its index within square brackets. All array indexes start at ZERO. Example:- System.out.println(units[4]); mean = (units[0] + units[1])/2; 147 + 323 /2 =235 0 1 2 3 4 5 6 7 8 9 int[ ] units = {147, 323, 89, 933, 540, 269, 97, 114, 298, 476};
PROCESSING ARRAY ELEMENTS Often a for( ) loop is used to process each of the elements of the array in turn. The loop control variable, i, is used as the index to access array components EXAMPLE:- int i; for(i=0;i<=2;i++) { score [0] System.out.println(+score[i]); } 0 1 2 3 4 5 6 score 50 12 45 78 66 100 125
int i; for(i=1;i<=2;i++) { score [1] System.out.println(+score[i]); } 0 1 2 3 4 5 6 score 50 12 45 78 66 100 125
Bounds Checking Once an array is created, it has a fixed size An index used in an array reference must specify a valid element That is, the index value must be in bounds (0 to N-1) The Java interpreter throws an ArrayIndexOutOfBoundsException if an array index is out of bounds This is called automatic bounds checking 14
Bounds Checking For example, if the array score can hold 100 values, it can be indexed using only the numbers 0 to 99 If i has the value 100, then the following reference will cause an exception to be thrown: 15 System.out.println (score[i]); It s common to introduce off-by-one errors when using arrays for (int i=0; i <= 100; i++) score[i] = i*50; problem
ARRAY OF OBJECTS Create a class student containing data members Name, Roll_no, and Marks.WAP in JAVA to accept details of 5 students. Print names of all those students who scored greater than 85 marks student student[0] student[1] student[2] student[3] Chris,101,85 Brad, 102,75.8 Andrew, 103,75.9
Recursion Recursion is the process of defining something in terms of itself. It allows a method to call itself. compute() In general, to solve a problem using recursion, you break it into sub problems. AREAS WHERE RECURSION CAN BE USED. FACTORIAL OF A NUMBER. FIBONACCI SERIES. GCD OF TWO NUMBERS. TOWER OF HANOI. QUICK SORT. MERGE SORT.
TWO- DIMENSIONAL ARRAY DECLARATION:- Follow the same steps as that of simple arrays. Example:- int [ ][ ]; chart = new int [3][2]; int chart[ ][ ] = new int [3][2]; INITIALIZATION:- int chart[3][2] = { 15,16,17,18,19,20}; 15 16 17 18 19 20 int chart[ ][ ] = { {15,16,17},{18,19,20} }; 15 16 17 18 19 20
PROGRAM FOR PRACTISE The daily maximum temperature is recorded in 5 cities during 3 days. Write a program to read the table elements into 2-d array temperature and find the city and day corresponding to Highest Temperature and Lowest Temperature. Write a program to create an array of objects of a class student. The class should have field members id, total marks and marks in 3 subjects viz. Physics, Chemistry & Maths. Accept information of 3 students and display them in tabular form in descending order of the total marks obtained by the student.