Arrays : Objectives After you have read and studied this chapter, you should be able to –Manipulate a collection of data values, using an array. –Declare.

Slides:



Advertisements
Similar presentations
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 10 Arrays.
Advertisements

Arrays, part 2. Array applications Arrays are useful whenever a relatively large amount of data must be kept available in memory for processing We will.
Array Basics Suppose you need to process daily temperatures for a 12-month period in a science project, would you use 365 variables? You can, but would.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 10 Arrays Sections 1-4.
Arrays.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 10 Using arrays to create collections.
1 CS100J 13 March 2006 Arrays. Reading: Secs 8.1, 8.2, 8.3. Listen to the following lectures on loops on your Plive CD. They are only 2-3 minutes long,
Chapter 7 – Arrays.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 10 2D Arrays.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 10 Arrays.
Chapter 10 Arrays. Topics Declaring and instantiating arrays Array element access Arrays of objects Arrays as method parameters Arrays as return values.
Recitation 3/27/2009 CS 180 Department of Computer Science, Purdue University.
Introduction to arrays. Array Homogeneous collection of components stored in adjacent memory locations –All elements share same data type –Entire collection.
بسم الله الرحمن الرحيم CPCS203: Programming II. Objectives After you have read and studied this chapter, you should be able to –Manipulate a collection.
© The McGraw-Hill Companies, 2006 Chapter 5 Arrays.
1 Arrays  Arrays are objects that help us organize large amounts of information  Chapter 8 focuses on: array declaration and use passing arrays and array.
1 11/8/06CS150 Introduction to Computer Science 1 Arrays Chapter 8 page 477 November 13, 2006.
Alice in Action with Java
CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 10 *Arrays with more than one dimension *Java Collections API.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 10 Arrays.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 10 Using arrays to create collections.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 10 Arrays Lists.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Chapter 10 Arrays and Collections.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 10 Using arrays to create collections.
1 CS100J 25 October 2006 Arrays. Reading: Secs 8.1, 8.2, 8.3. Listen to the following lectures on loops on your Plive CD. They are only 2-3 minutes long,
Chapter 10 2D Arrays Collection Classes. Topics Arrays with more than one dimension Java Collections API ArrayList Map.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Chapter 17 Animated Version Generics and Type Safety.
Introduction to Arrays in Java Corresponds with Chapter 6 of textbook.
5-Aug-2002cse Arrays © 2002 University of Washington1 Arrays CSE 142, Summer 2002 Computer Programming 1
Chapter 8 - Arrays. Chapter 8 Common to want to deal with collection of items Common to want to deal with collection of items Keep information about all.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2009 Pearson Education, Inc., Upper.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Array Basics An array is a collection of data.
Arrays Chapter 8. What if we need to store test scores for all students in our class. We could store each test score as a unique variable: int score1.
Review of ICS 102. Lecture Objectives To review the major topics covered in ICS 102 course Refresh the memory and get ready for the new adventure of ICS.
1 Java Review Outline Java Primitives, Program Structure Operators, Control Flow, Loops Classes and Objects Most of these slides are based on “Intro to.
1 On (computational) simplicity We are trying to teach not just Java, but how to think about problem solving. Computer science has its field called computational.
Primitive Arrays A primitive array stores multiple values of the same primitive data type. rainfall The index of the first position in an.
1 Java Review Outline Java Primitives, Program Structure Operators, Control Flow, Loops Classes and Objects Arrays and ArrayList Files Most of these slides.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Getting Started with Java: Object declaration and creation Primitive.
Array Search & Sort (continues). On the fly questions Array declaration: int[] a, b, c; 1. a is an array of integers, b and c are two integers 2. a, b,
Arrays Adapted from materials created by Dr. Donald Bell, Cal Poly 2000 (updated February 2004)
Arrays and ArrayLists Topic 6. One Dimensional Arrays Homogeneous – all of the same type Contiguous – all elements are stored sequentially in memory For.
CS1101: Programming Methodology Recitation 5 – Arrays and Collections.
CS 180 Recitation 7 Arrays. Used to store similar values or objects. An array is an indexed collection of data values of the same type. Arrays are the.
Two Dimensional Arrays Found in chapter 8, Section 8.9.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Chapter 18 List ADT Animated Version.
Arrays (part 2) 1 -Based on slides from Deitel & Associates, Inc. - Revised by T. A. Yang.
1 Java Review Outline Java Primitives, Program Structure Operators, Control Flow, Loops Classes and Objects Arrays and ArrayList Files Most of these slides.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 10 Arrays (adapted from the publisher’s.
Chapter 9 Introduction to Arrays Fundamentals of Java.
Arrays Chap. 9 Storing Collections of Values 1. Introductory Example Problem: Teachers need to be able to compute a variety of grading statistics for.
Arrays Collections of data Winter 2004CS-1010 Dr. Mark L. Hornick 1.
1 CS Oct 2008 Arrays. Reading: Secs 8.1, 8.2, 8.3 Listen to the following lectures on loops on your Plive CD. They are only 2-3 minutes long, and.
1 Java Review Outline Java Primitives, Program Structure Operators, Control Flow, Loops Classes and Objects Arrays and ArrayList Most of these slides are.
CS1101: Programming Methodology
Chapter 8 Arrays and the ArrayList Class Arrays of Objects.
Chapter 10 Arrays Animated Version
Chapter 8 - Arrays.
Java Review Most of these slides are based on
Basic Files + (Chapter 10 – Arrays) : Objectives
Chapter 6: Arrays.
Chapter 10 Arrays ©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display.
Chapter 6: Arrays.
Classes and Objects 5th Lecture
Arrays and Collections
Object Oriented Programming in java
Arrays and Array Lists CS 21a.
Java Review Most of these slides are based on
Chapter 9 Array Basics Suppose you need to process daily temperatures for a 12-month period in a science project, would you use 365 variables? You can,
Presentation transcript:

Arrays : Objectives After you have read and studied this chapter, you should be able to –Manipulate a collection of data values, using an array. –Declare and use an array of primitive data types in writing a program. –Declare and use an array of objects in writing a program –Define a method that accepts an array as its parameter and a method that returns an array –Describe how a two-dimensional array is implemented as an array of arrays –Manipulate a collection of objects, using lists and maps

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Arrays of Primitive Data Types What is an Array? Why do we need them? Array Declaration [ ] //variation 1 [ ]//variation 2 Array Creation = new [ ] Example double[ ] rainfall; rainfall = new double[12]; Variation 1 double rainfall [ ]; rainfall = new double[12]; Variation 2 An array is like an object!

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Accessing Individual Elements Individual elements in an array are accessed with the indexed expression. double[] rainfall = new double[12]; The index of the first position in an array is 0. rainfall rainfall[2] This indexed expression refers to the element at position #2

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Array Processing – Sample1 double[] rainfall = new double[12]; double annualAverage, sum = 0.0; for (int i = 0; i < rainfall.length; i++) { rainfall[i] = Double.parseDouble( JOptionPane.showinputDialog(null, "Rainfall for month " + (i+1) ) ); sum += rainfall[i]; } annualAverage = sum / rainfall.length; The public constant length returns the capacity of an array. Reading input from command line public static void main (String args[]) –-- args[0], args[1]

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Array Processing – Sample 2 double[] rainfall = new double[12]; String[] monthName = new String[12]; monthName[0] = "January"; monthName[1] = "February"; … double annualAverage, sum = 0.0; for (int i = 0; i < rainfall.length; i++) { rainfall[i] = Double.parseDouble( JOptionPane.showinputDialog(null, "Rainfall for " + monthName[i] )); sum += rainfall[i]; } annualAverage = sum / rainfall.length; The same pattern for the remaining ten months. The actual month name instead of a number.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Array Initialization Like other data types, it is possible to declare and initialize an array at the same time. int[] number = { 2, 4, 6, 8 }; double[] samplingData = { 2.443, 8.99, 12.3, , 18.2, 9.00, 3.123, , }; String[] monthName = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; number.length samplingData.length monthName.length

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Variable-size Declaration In Java, we are not limited to fixed-size array declaration. The following code prompts the user for the size of an array and declares an array of designated size: // Create a Scanner object for keyboard input. Scanner keyboard = new Scanner(System.in); // Get the number of test scores. System.out.print("How many tests do you have? "); numTests = keyboard.nextInt(); // Create an array to hold that number of scores. tests = new int[numTests]; Array operations : DisplayTestScores.java

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Array of Objects Example : Person Class We will use Person objects to illustrate the use of an array of objects. Person latte; latte = new Person( ); latte.setName("Ms. Latte"); latte.setAge(20); latte.setGender('F'); System.out.println( "Name: " + latte.getName() ); System.out.println( "Age : " + latte.getAge() ); System.out.println( "Sex : " + latte.getGender() ); The Person class supports the set methods and get methods.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Creating an Object Array - 1 Code State of Memory Person[ ] person; person = new Person[20]; person[0] = new Person( ); A A Only the name person is declared, no array is allocated yet. After is executed A A person

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter person Creating an Object Array - 2 Code State of Memory Person[ ] person; person = new Person[20]; person[0] = new Person( ); B B Now the array for storing 20 Person objects is created, but the Person objects themselves are not yet created. After is executed B B person

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Creating an Object Array - 3 Code State of Memory Person[ ] person; person = new Person[20]; person[0] = new Person( ); C C One Person object is created and the reference to this object is placed in position person person After is executed C C Person

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Person Array Processing – Sample 1 Create Person objects and set up the person array. String name, inpStr; intage; chargender; for (int i = 0; i < person.length; i++) { name = inputBox.getString("Enter name:"); //read in data values age= inputBox.getInteger("Enter age:"); inpStr= inputBox.getString("Enter gender:"); gender = inpStr.charAt(0); person[i] = new Person( ); //create a new Person and assign values person[i].setName ( name ); person[i].setAge ( age ); person[i].setGender( gender ); }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Person Array Processing – Sample 2 Find the youngest and oldest persons. intminIdx = 0;//index to the youngest person intmaxIdx = 0; //index to the oldest person for (int i = 1; i < person.length; i++) { if ( person[i].getAge() < person[minIdx].getAge() ) { minIdx = i; //found a younger person } else if (person[i].getAge() > person[maxIdx].getAge() ) { maxIdx = i; //found an older person } //person[minIdx] is the youngest and person[maxIdx] is the oldest

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Object Deletion – Approach 1 int delIdx = 1; person[delIdx] = null; Delete Person B by setting the reference in position 1 to null person A A B B C C D D A A 0123 A A C C D D Before is executed A A After is executed A A

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Object Deletion – Approach 2 int delIdx = 1, last = 3; person[delIndex] = person[last]; person[last] = null; Delete Person B by setting the reference in position 1 to the last person person A A B B C C D D A A 0123 A A C C D D Before is executed A A After is executed A A

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Person Array Processing – Sample 3 Searching for a particular person. Approach 2 Deletion is used. int i = 0; while ( person[i] != null && !person[i].getName().equals("Latte") ) { i++; } if ( person[i] == null ) { //not found - unsuccessful search System.out.println("Ms. Latte was not in the array"); } else { //found - successful search System.out.println("Found Ms. Latte at position " + i); }

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Passing Arrays to Methods - 1 Code State of Memory minOne = searchMinimum(arrayOne); public int searchMinimum(float[] number)) { … } A A At before searchMinimum A A arrayOne A. A. Local variable number does not exist before the method execution

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Passing Arrays to Methods - 2 Code State of Memory minOne = searchMinimum(arrayOne); public int searchMinimum(float[] number)) { … } arrayOne B B The address is copied at B B number B. B. The value of the argument, which is an address, is copied to the parameter.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter arrayOne number While at inside the method C C Passing Arrays to Methods - 3 Code State of Memory minOne = searchMinimum(arrayOne); public int searchMinimum(float[] number)) { … } C C C. C. The array is accessed via number inside the method.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter arrayOne number Passing Arrays to Methods - 4 Code State of Memory minOne = searchMinimum(arrayOne); public int searchMinimum(float[] number)) { … } D D arrayOne At after searchMinimum D D D. D. The parameter is erased. The argument still points to the same object.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Two-Dimensional Arrays Two-dimensional arrays are useful in representing tabular information.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Declaring and Creating a 2-D Array Declaration [][] //variation 1 [][] //variation 2 Creation = new [ ][ ] Example double[][] payScaleTable; payScaleTable = new double[4][5]; payScaleTable

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Accessing an Element An element in a two-dimensional array is accessed by its row and column index.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Sample 2-D Array Processing Find the average of each row. double[ ] average = { 0.0, 0.0, 0.0, 0.0 }; for (int i = 0; i < payScaleTable.length; i++) { for (int j = 0; j < payScaleTable[i].length; j++) { average[i] += payScaleTable[i][j]; } average[i] = average[i] / payScaleTable[i].length; }

Java Implementation of 2-D Arrays The sample array creation payScaleTable = new double[4][5]; is really a shorthand for payScaleTable = new double [4][ ]; payScaleTable[0] = new double [5]; payScaleTable[1] = new double [5]; payScaleTable[2] = new double [5]; payScaleTable[3] = new double [5];

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Two-Dimensional Arrays Subarrays may be different lengths. Executing triangularArray = new double[4][ ]; for (int i = 0; i < 4; i++) triangularArray[i] = new double [i + 1]; results in an array that looks like:

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Lists and Maps The java.util standard package contains different types of classes for maintaining a collection of objects. These classes are collectively referred to as the Java Collection Framework (JCF). JCF includes classes that maintain collections of objects as sets, lists, or maps. A Java interface defines only the behavior of objects –It includes only public methods with no method bodies. –It does not include any data members except public constants –No instances of a Java interface can be created

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter JCF Lists JCF includes the List interface that supports methods to maintain a collection of objects as a linear list L = (l 0, l 1, l 2,..., l N ) We can add to, remove from, and retrieve objects in a given list. A list does not have a set limit to the number of objects we can add to it.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter List Methods Here are five of the 25 list methods: boolean add ( Object o ) Adds an object o to the list void clear ( ) Clears this list, i.e., make the list empty Object get ( int idx ) Returns the element at position idx boolean remove ( int idx ) Removes the element at position idx int size ( ) Returns the number of elements in the list

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Using Lists To use a list in a program, we must create an instance of a class that implements the List interface. Two classes that implement the List interface: –ArrayList –LinkedList The ArrayList class uses an array to manage data. The LinkedList class uses a technique called linked- node representation.

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Sample List Usage Here's an example of manipulating a list: ArrayList accounts = new ArrayList (); accounts.add(new BankAccount(1001)); accounts.add(new BankAccount(1015)); accounts.add(new BankAccount(1729)); accounts.add(1, new BankAccount(1008)); accounts.remove(0);