1 / 34

Introduction to Arrays

Introduction to Arrays. Introduction to Computers and Programming in JAVA: V22.0002. Introduction to Arrays. Arrays Data structures which reference one or more values All items must have the same data type Remain the same size once they are created Fixed-length entries. -45. 6. 0. 72.

arleen
Download Presentation

Introduction to Arrays

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Arrays Introduction to Computers and Programming in JAVA: V22.0002

  2. Introduction to Arrays • Arrays • Data structures which reference one or more values • All items must have the same data type • Remain the same size once they are created • Fixed-length entries

  3. -45 6 0 72 1543 -89 0 62 -3 1 6453 78 c[ 0 ] Name of array (note that all elements of this array have the same name, c) c[ 1 ] c[ 2 ] c[ 3 ] c[ 4 ] c[ 5 ] c[ 6 ] c[ 7 ] c[ 8 ] c[ 9 ] c[ 10 ] Index (or subscript) of the element in array c c[ 11 ] Fig. 7.1 A 12-element array.

  4. Array vs. variable • Variables hold one value of one data type. • Num = 70; • Arrays reference multiple elements of the same data type. • Num[0]= 70; • Num[1]=20; • Now, it becomes easier to compare, search and/or sort all of the elements of the array since we have access to all of the them at the same time.

  5. Arrays (cont.) • Index • Also called subscript • Position number in square brackets • Must be positive integer or integer expression • Assign a value to array element 1 • c[ 0 ] = 2; • Adds 2 to six element: c[ 5 ] C[5] +=2; Index = 0 Reference first element of the array Index= 5 reference array element 6

  6. Arrays (cont.) • Examine array c • c is the array name • c.length accesses array c’s length • c has 12 elements ( c[0], c[1], … c[11] )

  7. Declaring and Creating Arrays • Declaring and Creating arrays • Arrays are objects that occupy memory • Created dynamically with the keyword new • Or you can declare and create in two lines:int c[ ]; // declare array c = newint[ 12 ]; // creates an array of type int • Creating an array and declaring it in one line: int c[ ] = newint[ 12 ]; • We can create arrays of objects with String data type String b[ ] = new String[ 100 ];

  8. Examples Using Arrays • Declaring arrays • Creating arrays • Initializing arrays • Manipulating array elements

  9. Examples Using Arrays (Cont.) • Creating and initializing an array • Declare array • Create array • Initialize array elements

  10. Declare array as an array of ints Create 10ints for array; each int is initialized to 0 by default array.length returns length of array array[counter] returns int associated with index in array 1 // Fig. 7.2: InitArray.java 2 // Creating an array. 3 import javax.swing.*; 4 5 public class InitArray { 6 7 public static void main( String args[] ) 8 { 9 int array[]; // declare reference to an array 10 11 array = new int[ 10 ]; // create array 12 13 String output = "Index\tValue\n"; 14 15 // append each array element's value to String output 16 for ( int counter = 0; counter < array.length; counter++ ) 17 output += counter + "\t" + array[ counter ] + "\n"; 18 19 20 JOptionPane.showMessageDialog( null, output, 21 "Initializing an Array of int Values", 22 JOptionPane.INFORMATION_MESSAGE ); 23 24 System.exit( 0 ); 25 26 } // end main 29 30 } // end class InitArray InitArray.javaLine 9Declare array as an array of intsLine 11Create 10ints for array; each int is initialized to 0 by defaultLine 16array.length returns length of arrayLine 17array[counter] returns int associated with index in array

  11. Each int is initialized to 0 by default Examples Using Arrays (Cont.) InitArray.javaEach int is initialized to 0 by default

  12. Examples Using Arrays (Cont.) • Using an array initializer • Use initializer list • Items are enclosed in braces ({}) • Items within the list are separated by commas int n[ ] = { 10, 20, 30, 40, 50 }; • Creates a five-element array • Index values of 0, 1, 2, 3, 4 • Note: in this case, we do not need the keyword new

  13. Declare array as an array of ints Compiler uses initializer list to allocate array 1 // Fig. 7.3: InitArray.java 2 // Initializing an array with a declaration. 3 import javax.swing.*; 4 5 public class InitArray { 6 7 public static void main( String args[] ) 8 { 9 // array initializer specifies number of elements and 10 // value for each element 11 int array[] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 }; 12 13 String output = "Index\tValue\n"; 14 15 // append each array element's value to String output 16 for ( int counter = 0; counter < array.length; counter++ ) 17 output += counter + "\t" + array[ counter ] + "\n"; 18 22 JOptionPane.showMessageDialog( null, output, 23 "Initializing an Array with a Declaration", 24 JOptionPane.INFORMATION_MESSAGE ); 25 26 System.exit( 0 ); 27 28 } // end main 29 30 } // end class InitArray InitArray.javaLine 11Declare array as an array of intsLine 11Compiler uses initializer list to allocate array

  14. Each array element corresponds to element in initializer list InitArray.javaEach array element corresponds to element in initializer list

  15. Examples Using Arrays (Cont.) • Calculating the value to store in each array element • Initialize elements of 10-element array to even integers

  16. Declare array as an array of ints Create 10ints for array Use array index to assign array value 1 // Fig. 7.4: InitArray.java 2 // Initialize array with the even integers from 2 to 20. 3 import javax.swing.*; 4 5 public class InitArray { 6 7 public static void main( String args[] ) 8 { 9 final intARRAY_LENGTH = 10; // constant 10 int array[]; // reference to int array 11 12 array = new int[ ARRAY_LENGTH ]; // create array 13 14 // calculate value for each array element 15 for ( int counter = 0; counter < array.length; counter++ ) 16 array[ counter ] = 2 + 2 * counter; 17 18 String output = "Index\tValue\n"; 19 20 for ( int counter = 0; counter < array.length; counter++ ) 21 output += counter + "\t" + array[ counter ] + "\n"; 22 23 System.out.print( output ); 25 InitArray.javaLine 10Declare array as an array of intsLine 12Create 10ints for arrayLine 16Use array index to assign array value

  17. 30 System.exit( 0 ); 31 32 } // end main 33 34 } // end class InitArray InitArray.java

  18. Examples Using Arrays (Cont.) • Summing the elements of an array • Array elements can represent a series of values • We can sum these values

  19. Declare array with initializer list Sum all array values 1 // Fig. 7.5: SumArray.java 2 // Total the values of the elements of an array. 3 import javax.swing.*; 4 5 public class SumArray { 6 7 public static void main( String args[] ) 8 { 9 int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 10 int total = 0; 11 12 // add each element's value to total 13 for ( int counter = 0; counter < array.length; counter++ ) 14 total += array[ counter ]; 15 16 JOptionPane.showMessageDialog( null, 17 "Total of array elements: " + total, 18 "Sum the Elements of an Array", 19 JOptionPane.INFORMATION_MESSAGE ); 20 21 System.exit( 0 ); 22 23 } // end main 24 25 } // end class SumArray SumArray.javaLine 9Declare array with initializer list Lines 13-14Sum all array values

  20. Examples Using Arrays (Cont.) • Using histograms do display array data graphically • Histogram • Plots each numeric value as bar of asterisks (*)

  21. Declare array with initializer list For each array element, print associated number of asterisks 1 // Fig. 7.6: Histogram.java 2 // Histogram printing program. 3 import javax.swing.*; 4 5 public class Histogram { 6 7 public static void main( String args[] ) 8 { 9 int array[] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 }; 10 11 String output = "Element\tValue\tHistogram"; 12 13 // for each array element, output a bar in histogram 14 for ( int counter = 0; counter < array.length; counter++ ) { 15 output += "\n" + counter + "\t" + array[ counter ] + "\t"; 16 17 // print bar of asterisks 18 for ( int stars = 0; stars < array[ counter ]; stars++ ) 19 output += "*"; 20 21 } // end outer for 22 25 Histogram.javaLine 9Declare array with initializer list Line 19For each array element, print associated number of asterisks

  22. 26 JOptionPane.showMessageDialog( null, output, 27 "Histogram Printing Program", JOptionPane.INFORMATION_MESSAGE ); 28 29 System.exit( 0 ); 30 31 } // end main 32 33 } // end class Histogram Histogram.java

  23. Using Arrays (Cont.) • Using the elements of an array as counters • Use a series of counter variables to summarize data

  24. Declare frequency as array of 7ints Generate 6000 random integers in range 1-6 Increment frequency values at index associated with random number 1 // Fig. 7.7: RollDie.java 2 // Roll a six-sided die 6000 times. 3 import javax.swing.*; 4 5 public class RollDie { 6 7 public static void main( String args[] ) 8 { 9 int frequency[] = new int[ 7 ]; 10 11 // roll die 6000 times; use die value as frequency index 12 for ( int roll = 1; roll <= 6000; roll++ ) 13 ++frequency[ 1 + ( int ) ( Math.random() * 6 ) ]; 14 15 String output = "Face\tFrequency"; 16 17 // append frequencies to String output 18 for ( int face = 1; face < frequency.length; face++ ) 19 output += "\n" + face + "\t" + frequency[ face ]; 20 21 JOptionPane.showMessageDialog( null, output, 25 "Rolling a Die 6000 Times", JOptionPane.INFORMATION_MESSAGE ); 26 27 System.exit( 0 ); 28 29 } // end main 30 31 } // end class RollDie RollDie.javaLine 9Declare frequency as array of 7ints Lines 12-13Generate 6000 random integers in range 1-6Line 13Increment frequency values at index associated with random number

  25. Index 0 1 2 3 4 5 6 7 8 9 Value 85 76 99 38 78 98 89 90 82 88 Array review Figuring out the array positions • In Java, an array’s elements start at index 0 and go up to (the number of elements – 1) • For example, our array of 10 student grades filled in with grades might look like:

  26. Keyword newarray - review • The keyword new is used in Java when you wish to create a new object. • In Java, arrays are objects. • We will not speak about the details of an object. • All you need to know is in the case of arrays, new is used to create the new array. • All positions of the new array will automatically be initialized to the default value for the array’s type.

  27. Some powerful features of arrays • Java can use expressions as the subscript • For example, if variables a = 1 and b = 2 studentGrades[ a + b ] would be the same as writing … studentGrades[ 3 ] • Java can use array elements in expressions ++ studentGrades[1]; … increments the value of array element #2 by one. This is the same as: studentGrades[1] = studentGrades[1] + 1;

  28. Using Arrays (Cont.) • Using arrays to analyze survey results • 40 students rate the quality of food • 1-10 Rating scale: 1 mean awful, 10 means excellent • Place 40 responses in array of integers • Summarize results

  29. Declare responses as array to store 40 responses Declare frequency as array of 11int and ignore the first element For each response, increment frequency values at index associated with that response 1 // Fig. 7.8: StudentPoll.java 2 // Student poll program. 3 import javax.swing.*; 4 5 public class StudentPoll { 6 7 public static void main( String args[] ) 8 { 9 int responses[] = { 1, 2, 6, 4, 8, 5, 9, 7, 8, 10, 1, 6, 3, 8, 6, 10 10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7, 5, 6, 6, 5, 6, 7, 5, 6, 11 4, 8, 6, 8, 10 }; 12 int frequency[] = new int[ 11 ]; 13 14 // for each answer, select responses element and use that value 15 // as frequency index to determine element to increment 16 for ( int answer = 0; answer < responses.length; answer++ ) 17 ++frequency[ responses[ answer ] ]; 18 19 String output = "Rating\tFrequency\n"; 20 21 // append frequencies to String output 22 for ( int rating = 1; rating < frequency.length; rating++ ) 23 output += rating + "\t" + frequency[ rating ] + "\n"; 24 25 StudentPoll.javaLines 9-11Declare responses as array to store 40 responses Line 12Declare frequency as array of 11int and ignore the first elementLines 16-17For each response, increment frequency values at index associated with that response

  30. 28 JOptionPane.showMessageDialog( null, output, 29 "Student Poll Program", JOptionPane.INFORMATION_MESSAGE ); 30 31 System.exit( 0 ); 32 33 } // end main 34 35 } // end class StudentPoll StudentPoll.java

  31. Examples Using Arrays (Cont.) • Some additional information • When looping through an array • The index should never go below 0 • The index should be less than the total number of array elements • When invalid array reference occurs • Java generates ArrayIndexOutOfBoundsException • Chapter 15 discusses exception handling

  32. References and Reference Parameters • Two ways to pass parameters to methods • Pass-by-value • Copy of the parameter’s value is passed to the called method • In Java, every primitive variable is handled with pass-by-value • Pass-by-reference • Caller method gives the called method direct access to the caller’s data • The called method can then manipulate these data. • This provides an improved performance over pass-by-value. • In Java, every object is used with pass-by-reference • In Java, arrays are objects • Therefore, arrays are passed to methods by reference

  33. Passing Arrays to Methods • To pass an array parameter to a method • Specify the array name without brackets • Array hourlyTemperatures is declared as int hourlyTemperatures = newint[ 24 ]; • The method call is written as folows: modifyArray( hourlyTemperatures ); • This passes the array hourlyTemperatures to the method called modifyArray

  34. Passing arrays to methods (cont) In the method header, use similar syntax as that for array declaration: public static void passArray(int array [] ) or public static void passArray(int [] array )

More Related