Alice in Action with Java Chapter 12 Arrays and Lists in Java.
-
date post
22-Dec-2015 -
Category
Documents
-
view
224 -
download
0
Transcript of Alice in Action with Java Chapter 12 Arrays and Lists in Java.
![Page 1: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/1.jpg)
Alice in Action with Java
Chapter 12Arrays and Lists in Java
![Page 2: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/2.jpg)
Alice in Action with Java 2
Objectives
• Understand Java’s array data structure
• Solve problems using Java’s LinkedList data structure
• Solve problems using Java’s ArrayList data structure
![Page 3: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/3.jpg)
Alice in Action with Java 3
Arrays and Lists in Java
• Features common to arrays and lists– Used to define variables that store groups of items– Provide access to a given item using an index
• Differences between arrays and lists– Array’s size is fixed at runtime, a list’s size can change– Array stores items using less memory than a list– Array provides direct item access faster than a list
![Page 4: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/4.jpg)
Alice in Action with Java 4
Introductory Example: Air Pollution Reporting
• Review of AirPollutionIndex.java– Read air pollution level readings from five points– Compute and display the average reading (the index)
• Additional requirements of the enhanced program– Display the five readings used to compute the average
• High-level algorithm for AirPollutionReport– Build an array named readings with length = 5 – Read the air pollution readings into readings– Compute and display average of values in readings– Display the individual values in readings
![Page 5: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/5.jpg)
Alice in Action with Java 5
Java Arrays
• General pattern for defining (declaring) an array– Item[] anArray = new Item[N];
• Item: specifies the items type
• Brackets tell compiler that anArray is an array handle• new operator: allocates memory for the array• N: an integer that specifies the array length (size)
• An example of an array definition: double[] readings = new double [NUM_READINGS];– NUM_READINGS is an integer constant = 5– readings is a handle to a 5 unit double type array
![Page 6: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/6.jpg)
Alice in Action with Java 6
Java Arrays (continued)
• Element: indexed unit variable in an array
• Item: value stored in an array element
• Items are initialized to default values for array’s type– Example: default value for item in double type is 0.0
• Creating an array parameter– Place brackets between parameter’s type and its name– General form: public ReturnType methodName( Item[] parameterName ){…
– Example: public static double average(double [] anArray)
![Page 7: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/7.jpg)
Alice in Action with Java 7
Java Arrays (continued)
![Page 8: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/8.jpg)
Alice in Action with Java 8
Java Arrays (continued)
• Components needed to access an array’s elements– Array’s handle, item’s index, subscript operator ([])
• Pattern for accessing an element: anArray[i]– anArray is the handle to the array – i: index value, which must be a non-negative integer– An index value out of bounds throws an exception
• Example of an array access: readings[0]– Accesses the first element of the readings array– Note: index is off by one relative to item’s cardinal order
• length property: returns number of items in an array
![Page 9: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/9.jpg)
Alice in Action with Java 9
Java Arrays (continued)
• for loop provides convenient access to an array
• Example of an array traversal using a for loop– for (int i = 0; i < arr.length; i++){
System.out.println("Reading #" + (i+1) + ": " + arr[i]);}
• for each loop – Special loop used to read each item in an array– Limitation: cannot be used to write to array’s elements
• Example of array traversal using a for each loop– for (double item : anArray){sum += item;}
![Page 10: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/10.jpg)
Alice in Action with Java 10
Example 2: Month Names From Numbers
• Essential elements of user story – Randomly generate a month number– Query user for a month name matching the number– Read the user’s response– Display a message appropriate to the response– Let the user keep playing as long as he or she wants
• Instance variables declared in the Month class– An integer myNumber and a string myName
• Role of the Month()constructor– Construct a Month object given a month number
![Page 11: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/11.jpg)
Alice in Action with Java 11
Example 2: Month Names From Numbers (continued)
• MONTHS will be used to store the month names– The array is declared as a constant class variable– Declaration also includes an initialization values list– The array functions as a lookup table for the constructor
• Other Month members– Accessors for the instance variables– A toString()method
• Other classes used in MonthTester– Random (to generate a random number)– Scanner (to read in the month’s name)
![Page 12: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/12.jpg)
Alice in Action with Java 12
Example 2: Month Names From Numbers (continued)
![Page 13: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/13.jpg)
Alice in Action with Java 13
Arrays and Memory
• An array is a random access data structure– Contiguous elements are accessed in constant time
• Subscript operation computes an element’s address
• How to compute the address of an array element– Multiply the index i by the size of an item– Add the resulting product to the starting address– Example: anArray[4]= (anArray+4*itemSize)
• Insertion and removal are linear time operations– Up to length–1 items are shifted in each operation– Many of these operations can slow down a program
![Page 14: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/14.jpg)
Alice in Action with Java 14
Arrays and Memory (continued)
![Page 15: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/15.jpg)
Alice in Action with Java 15
Arrays and Memory (continued)
![Page 16: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/16.jpg)
Alice in Action with Java 16
Multidimensional Arrays
• Dimension: axis used to specify element’s location • length determines space for one-dimensional array
• You can create arrays with multiple dimensions– Example: two-dimensional array to model a table
• How to declare an N-dimensional array handle– Use N pairs of brackets to declare
• Example of declaring a two-dimensional array– private double [][] myTable = null;
![Page 17: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/17.jpg)
Alice in Action with Java 17
Multidimensional Arrays (continued)
• Defining a multidimensional array with default values – Use the new operator and specify dimensions– Ex: myTable = new double[rows][columns];
• Defining multidimensional array with non-default values– Use an initialization list
• Accessing a multidimensional array element– Use N subscript operators for N dimensions– Example: myTable[row][col] = item;
• Processing multidimensional arrays – Use N for loops to traverse array with N dimensions
![Page 18: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/18.jpg)
Alice in Action with Java 18
Lists in Java
• Interface: a structure that only declares methods
• A class implementing an interface defines methods
• Example: String implements CharSequence• Java’s List is an interface
• Two classes implementing List– LinkedList: similar to Alice’s list data structure– ArrayList: dynamic container offering fast access
![Page 19: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/19.jpg)
Alice in Action with Java 19
Lists in Java (continued)
![Page 20: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/20.jpg)
Alice in Action with Java 20
Lists in Java (continued)
![Page 21: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/21.jpg)
Alice in Action with Java 21
Using ArrayLists
• ArrayList implements the List interface• Features of an ArrayList
– Reference type data structure– Can increase in size during execution– set()and get()access items in constant time
• Patterns for declaring and defining an ArrayList
• Insert items in an ArrayList using add()
![Page 22: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/22.jpg)
Alice in Action with Java 22
Using ArrayLists
• Rules for declaring an array list– The type of an array list must be a reference type– Use a wrapper class when a primitive type is needed
• Wrapper class contains primitive type plus operations
• Pattern for declaring an ArrayList– ArrayList<ItemType> handleName = null;
• Example of a ArrayList declaration– ArrayList<Double> listOfNumbers = null;
• Produces a handle called listOfNumbers• listOfNumbers is capable of storing an arbitrary
number of Double objects
![Page 23: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/23.jpg)
Alice in Action with Java 23
Using ArrayLists (continued)
![Page 24: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/24.jpg)
Alice in Action with Java 24
Using ArrayLists (continued)
![Page 25: Alice in Action with Java Chapter 12 Arrays and Lists in Java.](https://reader035.fdocuments.us/reader035/viewer/2022062221/56649d815503460f94a66c8b/html5/thumbnails/25.jpg)
Alice in Action with Java 25
Summary
• Array: fixed-size container used to store items of the same type
• Items: values stored in an array’s elements
• Accessing an array element is a constant time operation
• Inserting and removing items in an array are linear time operations
• Arrays can have an arbitrary number of dimensions• ArrayList includes the random access capability of
arrays and the ability to change size