1 / 23

Arrays

Arrays. Chapter 6. 0. 1. 2. 3. Arrays. Each variable only holds one item if > 1 item wanted, need an array array that holds a word arrays hold elements all of the same type char[ ] word = new char[4]; holds 4 elements of type char. word. 'h'. 0. 1. 2. 3. 'h'. 'e'. 0. 1. 2.

tavon
Download Presentation

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. Arrays Chapter 6

  2. 0 1 2 3 Arrays • Each variable only holds one item • if > 1 item wanted, need an array • array that holds a word • arrays hold elements all of the same type char[ ] word = new char[4]; • holds 4 elements of type char word

  3. 'h' 0 1 2 3 'h' 'e' 0 1 2 3 'h' 'h' 'e' 'e' 'r' 'o' 'o' 0 0 1 1 2 2 3 3 char[ ] word = new char[4]; two parts to an array: 1. index -- integer element – type inside array two parts to an array: 1. element – any type inside word[3] = 'o'; word[0] = 'h'; two parts to an array: 1. index -- integer word[1] = 'e'; word[2] = 'r';

  4. 'h' 'h' 'e' 'e' 'r' 'r' 'o' 'd' 0 0 1 1 2 2 3 3 Array manipulation • Can use variables for index OR elements int i=3; char newc = 'd'; word[i] = newc; • can find length word.length // is 4 • largest index is always length – 1 • word[4] is RUN time error

  5. arrays and new char[ ] word; • creates word that is of type char array that points to nothing word = new char[4]; • creates array of 4 elements initialized to \u0000 (Java always initializes instance variables to 0)

  6. Myarray example public class Myarray { private Circle[ ] circles; private double[ ] area; // other stuff in the class }

  7. Myarray gets elements allocated • Create an object circles = new Circle[4]; area = new double[4];

  8. createcircles( ) • createcircles() circles[0] = new Circle();

  9. array creation summary • char[ ] word; creates a space named word that contains null • word = new char [4]; allocates 4 chars, initialized, word points to them • classes: Circle[ ] mycircles; same as word • mycircles = new Circle[4]; allocates 4 spaces that contain null • mycircles[0] = new Circle( ); creates an actual circle new [ ] for arrays, NOT ( )

  10. array creation summary • use new to create an array: • char[ ] word = new char [4]; • Circle[ ] circles = new Circle[4]; • if the type of element is an object, each item must be new-ed • word[1] = ‘r’; • circles[1] = new Circle( );

  11. Repetition in arrays • arrays often do the same thing (e.g., for each Circle in array, create a Circle) for (int i=0; i<circles.length; i++) circles[i] = new Circle( ); memorize this line

  12. More on Loops • Java 5 for loop/for each/expanded for Read ‘for (’ as “for each” and ‘:’ as “in the array” Type of element name of array variable for (Circle c : circles) c.changeColor(“red”); c is name for each element in loop, NOT each index No explicit i; cannot reference individual elements (e.g., a[i] = d; won't work)

  13. Practice • Write code to declare a 4 character word array, then write a loop to initialize chars in word to be 'A' • Write code to declare a 26 character array, then write a loop to initialize chars in word to be ABCDEFGHIJKLMNOPQRSTUVWXYZ (do this in a loop). Hint: use a separate variable for the element value (start with 'A') ++ and += works for chars • Declare an int array with 1000 integers and write a loop to put the value of the index into the element (e.g., intarray[3] should have the value 3)

  14. Array Specifics: passing as a parameter • Passing arrays as parameters int[ ] grades = new grades[20]; int sum = sumgrades(grades); double average = 0.0; if (grades.length > 0) average = sum * 1.0 / grades.length; int index; index = findmatches(grades[0], grades, 1, grades.length); if (index == -1) System.out.println("Match not found"); To call a method with an array as a parameter, use just the name of the array. NO [ ] To pass an element of an array, access the element as you always would

  15. Write sumgrades • Call is: int sum = sumgrades(grades);

  16. Arrays as Parameters public int sumgrades(int[ ] myarray) { int sum = 0; for (int element : myarray) sum += element; return sum; } or public int sumgrades(int[ ] myarray) { int sum = 0; for (int i=0;i<myarray.length;i++) sum = sum + myarray[i]; return sum; } Declare array parameters using []s just like when you declare them as variables

  17. Write findmatches • Call is: index = findmatches(grades[0], grades, 1, grades.length);

  18. Searching Arrays public int findmatches(int item, int[ ] anarray, int start, int finish) { for (int i=start;i<finish;i++) if (item == anarray[i]) return i; return -1; // if done with loop, not found }

  19. myarray 3 5 7 9 Initializing and Copying arrays • Can initialize arrays • int[ ] myarrray = {3, 5, 7, 9}; • Copying arrays • int yourarray[ ] = new int[myarray.length]; • yourarray = myarray; • copies reference, not values. • must copy individual elements: for (int i=0;i<myarray.length;i++) yourarray[i] = myarray[i];

  20. Two-dimensional Arrays • int students = 5; int nbrgrades = 3; • int[ ][ ] grades = new int[students][nbrgrades]; [0] [1] Student Number [2] [3] [4] [0] [1] [2] Grades

  21. Two-dimensional Arrays • int students = 5; int nbrgrades = 3; • int[ ][ ] grades = new int[students][nbrgrades]; for (int i=0;i<grades.length;i++) { System.out.print("Student number " + i + " "); for (int j=0;j<grades[i].length;j++) System.out.print(grades[i][j] + " "); System.out.println(); }

  22. Write a method that returns the average of all grades • int students = 5; int nbrgrades = 3; • int grades = new int[students][nbrgrades]; • header is: public double average(int[ ] [ ] myarray)

  23. More array practice • Write a method that finds the largest element in an array of integers • Write a method that will print all of the scores greater than the average

More Related