java programming fourth edition - rutgers universityszhou/351/ch08.pdfjava programming, fourth...
TRANSCRIPT
![Page 1: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/1.jpg)
Java Programming Fourth Edition
Chapter 8 Arrays
![Page 2: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/2.jpg)
Java Programming, Fourth Edition 2
Objectives
• Declare and initialize an array • Use subscripts with an array • Declare an array of objects • Search an array for an exact match • Search an array for a range match
![Page 3: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/3.jpg)
Java Programming, Fourth Edition 3
Objectives (continued)
• Pass arrays to methods • Create arrays of Strings • Sort array elements • Use two-dimensional and multidimensional arrays • Use the Arrays class
![Page 4: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/4.jpg)
Java Programming, Fourth Edition 4
Declaring and Initializing an Array
• Array – Named list of data items – All have same type
• Declare array variable – Same way as declaring any simple variable – Insert pair of square brackets after type
![Page 5: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/5.jpg)
Java Programming, Fourth Edition 5
Declaring and Initializing an Array (continued)
• double[] salesFigure; • int[] idNum; • Still need to reserve memory space
– salesFigure = new double[20]; – double[] salesFigure = new double[20];
• Subscript – Integer contained within square brackets – Indicates one of array’s variables or elements
![Page 6: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/6.jpg)
Java Programming, Fourth Edition 6
Declaring and Initializing an Array (continued)
• Array’s elements numbered beginning with zero – Can legally use any subscript from 0 through 19 – When working with array that has 20 elements
• Work with any individual array element – Treat no differently than single variable of same type – salesFigure[0] = 2100.00;
![Page 7: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/7.jpg)
Java Programming, Fourth Edition 7
An Array of 20 salesFigure Items in Memory
![Page 8: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/8.jpg)
Java Programming, Fourth Edition 8
Initializing an Array
• Variable with reference type – Such as array – Holds memory address where value stored
• Array names – Represent computer memory addresses – Contain references
• Declare array name – No computer memory address assigned – Has special value null
• Unicode value ‘\u0000’
![Page 9: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/9.jpg)
Java Programming, Fourth Edition 9
Initializing an Array (continued)
• Use keyword new to define array – Array name acquires actual memory address value
• int[] someNums = new int[10]; – Each element of someNums has value of 0
• char array elements – Assigned ‘\u0000’
• boolean array elements – Automatically assigned value false
![Page 10: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/10.jpg)
Java Programming, Fourth Edition 10
Initializing an Array (continued)
• Assign nondefault values to array elements upon creation – int[] tenMult = {10, 20, 30, 40, 50, 60};
![Page 11: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/11.jpg)
Java Programming, Fourth Edition 11
Using Subscripts with an Array
• Scalar – Primitive variable
• Power of arrays – Use subscripts that are variables – Rather than constant subscripts – Use a loop to perform array operations for (sub = 0; sub < 5; ++sub)
scoreArray[sub] += 3;
![Page 12: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/12.jpg)
Java Programming, Fourth Edition 12
Using Subscripts with an Array (continued)
• Application contains array – Use every element of array in some task – Perform loops that vary loop control variable
• Start at 0 • End at one less than size of array
• Convenient to declare symbolic constant equal to size of array – final int NUMBER_OF_SCORES = 5;
![Page 13: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/13.jpg)
Java Programming, Fourth Edition 13
Using Subscripts with an Array (continued)
• Field – Instance variable – Automatically assigned value for every array created
• length field – Contains number of elements in array for(sub = 0; sub < scoreArray.length; ++sub) scoreArray[sub] += 3;
![Page 14: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/14.jpg)
Java Programming, Fourth Edition 14
Using Subscripts with an Array (continued)
• Enhanced for loop – Cycle through array – Without specifying starting and ending points for loop
control variable for(int val : scoreArray)
System.out.println(val);
![Page 15: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/15.jpg)
Java Programming, Fourth Edition 15
Declaring an Array of Objects
• Create array of Employee objects – Employee[] emp = new Employee[7]; – Must call seven individual constructors final double PAYRATE = 6.35;
for(int x = 0; x < NUM_EMPLOYEES; ++x) emp[x] = new Employee(101 + x, PAYRATE);
![Page 16: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/16.jpg)
Java Programming, Fourth Edition 16
Searching an Array For an Exact Match
• Determine whether variable holds one of many valid values – Use series of if statements – Compare variable to series of valid values
![Page 17: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/17.jpg)
Java Programming, Fourth Edition 17
Searching an Array For an Exact Match (continued)
• Searching array – Compare variable to list of values in array for(int x = 0; x < validValues.length; ++x)
{ if(itemOrdered == validValues[x])
– validItem = true; }
![Page 18: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/18.jpg)
Java Programming, Fourth Edition 18
A for Loop with an Early Exit
![Page 19: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/19.jpg)
Java Programming, Fourth Edition 19
Searching an Array For an Exact Match (continued)
• Parallel array – One with same number of elements as another – Values in corresponding elements related
• Alternative for searching – Use while loop
![Page 20: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/20.jpg)
Java Programming, Fourth Edition 20
A while Loop with an Early Exit
![Page 21: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/21.jpg)
Java Programming, Fourth Edition 21
Searching an Array For a Range Match
• Searching array for exact match – Not always practical
• Range match – Compare value to endpoints of numerical ranges – Find category in which value belongs
![Page 22: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/22.jpg)
Java Programming, Fourth Edition 22
The FindDiscount Class
![Page 23: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/23.jpg)
Java Programming, Fourth Edition 23
Passing Arrays to Methods
• Pass single array element to method – Same as passing variable
• Passed by value – Copy of value made and used in receiving method
• Reference types – Object holds memory address where values stored – Receiving method gets copy of array’s actual
memory address
![Page 24: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/24.jpg)
Java Programming, Fourth Edition 24
Passing Arrays to Methods (continued)
• Reference types (continued) – Receiving method has ability to alter original values
in array elements
![Page 25: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/25.jpg)
Java Programming, Fourth Edition 25
The PassArrayElement Class
![Page 26: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/26.jpg)
Java Programming, Fourth Edition 26
Creating Arrays of Strings
• Create array of Strings String[] deptName = {"Accounting", "Human Resources", "Sales"};
for(int a = 0; a < deptName.length; ++a) System.out.println(deptName[a]);
![Page 27: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/27.jpg)
Java Programming, Fourth Edition 27
The SearchList Class
![Page 28: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/28.jpg)
Java Programming, Fourth Edition 28
Sorting Array Elements
• Sorting – Process of arranging series of objects in some
logical order • Ascending order
– Begin with object that has lowest value • Descending order
– Start with object that has largest value
![Page 29: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/29.jpg)
Java Programming, Fourth Edition 29
Sorting Array Elements (continued)
• Simplest possible sort – Involves two values that are out of order – Swap two values temp = valA; // 16 goes to temp
valA = valB; // 2 goes to valA valB = temp; // 16 goes to valB
![Page 30: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/30.jpg)
Java Programming, Fourth Edition 30
Sorting Array Elements (continued)
• Bubble sort – Continue to compare pairs of items
• Swapping them if they are out of order – Smallest items “bubble” to top of list – Eventually creating sorted list
![Page 31: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/31.jpg)
Java Programming, Fourth Edition 31
Ascending Bubble Sort of the someNums Array Elements
![Page 32: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/32.jpg)
Java Programming, Fourth Edition 32
More Efficient Ascending Bubble Sort of the someNums Array Elements
![Page 33: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/33.jpg)
Java Programming, Fourth Edition 33
Sorting Arrays of Objects
• Sort arrays of objects – Same way that you sort arrays of primitive types – Major difference
• Make comparison that determines whether to swap two array elements
• Sort based on particular object field
![Page 34: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/34.jpg)
Java Programming, Fourth Edition 34
Using Two-Dimensional and Multidimensional Arrays
• One-dimensional or single-dimensional array – Picture as column of values – Elements accessed using single subscript
• Two-dimensional arrays – Two or more columns of values – Rows and columns – Use two subscripts – Matrix or table int[][] someNumbers = new int[3][4];
![Page 35: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/35.jpg)
Java Programming, Fourth Edition 35
View of a Two-Dimensional Array in Memory
![Page 36: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/36.jpg)
Java Programming, Fourth Edition 36
Using Two-Dimensional and Multidimensional Arrays (continued) int[][] rents = { {400, 450, 510}, {500, 560, 630},
{625, 676, 740}, {1000, 1250, 1600} };
public static void displayScores(int[][]scoresArray)
![Page 37: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/37.jpg)
Java Programming, Fourth Edition 37
Using Two-Dimensional and Multidimensional Arrays (continued)
• Multidimensional arrays – More than two dimensions
• Create arrays of any size – Keep track of order of variables needed as
subscripts – Don’t exhaust computer’s memory
![Page 38: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/38.jpg)
Java Programming, Fourth Edition 38
Using the Arrays Class
• Arrays class – Contains many useful methods for manipulating
arrays – static methods
• Use with class name • Without instantiating Arrays object
– binarySearch() method • Convenient way to search through sorted lists of
values of various data types • List must be in order
![Page 39: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/39.jpg)
Java Programming, Fourth Edition 39
Useful Methods of the Arrays Class
![Page 40: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/40.jpg)
Java Programming, Fourth Edition 40
You Do It
• Creating and populating an array • Initializing an array • Using a for loop to access array elements • Creating parallel arrays to eliminate nested if
statements • Creating an application with an array of objects
![Page 41: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/41.jpg)
Java Programming, Fourth Edition 41
You Do It (continued)
• Creating an interactive application that creates an array of objects
• Passing an array to a method • Using Arrays class methods
![Page 42: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/42.jpg)
Java Programming, Fourth Edition 42
Summary
• Array – Named list of data items – All have same type
• Array names – Represent computer memory addresses
• Shorten many array-based tasks – Use variable as subscript
• length field – Contains number of elements in array
![Page 43: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch08.pdfJava Programming, Fourth Edition 43 Summary (continued) • Search array to find match to value • Perform range](https://reader034.vdocuments.site/reader034/viewer/2022042612/5f5a7090ff7b8d0d41612138/html5/thumbnails/43.jpg)
Java Programming, Fourth Edition 43
Summary (continued)
• Search array to find match to value • Perform range match • Pass single array element to method • Sorting
– Process of arranging series of objects in some logical order
• Two-dimensional arrays – Both rows and columns
• Arrays class