Chapter 6 Arrays Presentation slides for Java Software






![Declaring Arrays Ø The scores array could be declared as follows: int[] scores = Declaring Arrays Ø The scores array could be declared as follows: int[] scores =](https://slidetodoc.com/presentation_image_h/c85217af4e9b513173302d2f5963c232/image-7.jpg)
![Declaring Arrays Ø Some examples of array declarations: float[] prices = new float[500]; boolean[] Declaring Arrays Ø Some examples of array declarations: float[] prices = new float[500]; boolean[]](https://slidetodoc.com/presentation_image_h/c85217af4e9b513173302d2f5963c232/image-8.jpg)




















![Two-Dimensional Arrays Expression scores Type int[][] Description scores[5] int[] array of integers scores[5][12] integer Two-Dimensional Arrays Expression scores Type int[][] Description scores[5] int[] array of integers scores[5][12] integer](https://slidetodoc.com/presentation_image_h/c85217af4e9b513173302d2f5963c232/image-29.jpg)












- Slides: 41

Chapter 6: Arrays Presentation slides for Java Software Solutions Foundations of Program Design Third Edition by John Lewis and William Loftus Java Software Solutions is published by Addison-Wesley Presentation slides are copyright 2002 by John Lewis and William Loftus. All rights reserved. Instructors using the textbook may use and modify these slides for pedagogical purposes.

Arrays Ø Arrays are objects that help us organize large amounts of information Ø Chapter 6 focuses on: • • • array declaration and use passing arrays and array elements as parameters arrays of objects sorting elements in an array multidimensional arrays the Array. List class • polygons and polylines • more button components 2

Arrays Ø An array is an ordered list of values Each value has a numeric index The entire array has a single name 0 scores 1 2 3 4 5 6 7 8 9 79 87 94 82 67 98 87 81 74 91 An array of size N is indexed from zero to N-1 This array holds 10 values that are indexed from 0 to 9 3

Arrays Ø A particular value in an array is referenced using the array name followed by the index in brackets Ø For example, the expression scores[2] refers to the value 94 (the 3 rd value in the array) Ø That expression represents a place to store a single integer and can be used wherever an integer variable can be used 4

Arrays Ø For example, an array element can be assigned a value, printed, or used in a calculation: scores[2] = 89; scores[first] = scores[first] + 2; mean = (scores[0] + scores[1])/2; System. out. println ("Top = " + scores[5]); 5

Arrays Ø The values held in an array are called array elements Ø An array stores multiple values of the same type (the element type) Ø The element type can be a primitive type or an object reference Ø Therefore, we can create an array of integers, or an array of characters, or an array of String objects, etc. Ø In Java, the array itself is an object Ø Therefore the name of the array is a object reference variable, and the array itself must be instantiated 6
![Declaring Arrays Ø The scores array could be declared as follows int scores Declaring Arrays Ø The scores array could be declared as follows: int[] scores =](https://slidetodoc.com/presentation_image_h/c85217af4e9b513173302d2f5963c232/image-7.jpg)
Declaring Arrays Ø The scores array could be declared as follows: int[] scores = new int[10]; Ø The type of the variable scores is int[] (an array of integers) Ø Note that the type of the array does not specify its size, but each object of that type has a specific size Ø The reference variable scores is set to a new array object that can hold 10 integers Ø See Basic. Array. java (page 322) 7
![Declaring Arrays Ø Some examples of array declarations float prices new float500 boolean Declaring Arrays Ø Some examples of array declarations: float[] prices = new float[500]; boolean[]](https://slidetodoc.com/presentation_image_h/c85217af4e9b513173302d2f5963c232/image-8.jpg)
Declaring Arrays Ø Some examples of array declarations: float[] prices = new float[500]; boolean[] flags; flags = new boolean[20]; char[] codes = new char[1750]; 8

Bounds Checking Ø Once an array is created, it has a fixed size Ø An index used in an array reference must specify a valid element Ø That is, the index value must be in bounds (0 to N-1) Ø The Java interpreter throws an Array. Index. Out. Of. Bounds. Exception if an array index is out of bounds Ø This is called automatic bounds checking 9

Bounds Checking Ø For example, if the array codes can hold 100 values, it can be indexed using only the numbers 0 to 99 Ø If count has the value 100, then the following reference will cause an exception to be thrown: System. out. println (codes[count]); Ø It’s common to introduce off-by-one errors when using arrays problem for (int index=0; index <= 100; index++) codes[index] = index*50 + epsilon; 10

Bounds Checking Ø Each array object has a public constant called length that stores the size of the array Ø It is referenced using the array name: scores. length Ø Note that length holds the number of elements, not the largest index Ø See Reverse. Order. java (page 324) Ø See Letter. Count. java (page 326) 11

Alternate Array Syntax Ø The brackets of the array type can be associated with the element type or with the name of the array Ø Therefore the following declarations are equivalent: float[] prices; float prices[]; Ø The first format generally is more readable 12

Initializer Lists Ø An initializer list can be used to instantiate and initialize an array in one step Ø The values are delimited by braces and separated by commas Ø Examples: int[] units = {147, 323, 89, 933, 540, 269, 97, 114, 298, 476}; char[] letter. Grades = {'A', 'B', 'C', 'D', ’F'}; 13

Initializer Lists Ø Note that when an initializer list is used: • the new operator is not used • no size value is specified Ø The size of the array is determined by the number of items in the initializer list Ø An initializer list can only be used only in the array declaration Ø See Primes. java (page 330) 14

Arrays as Parameters Ø An entire array can be passed as a parameter to a method Ø Like any other object, the reference to the array is passed, making the formal and actual parameters aliases of each other Ø Changing an array element within the method changes the original Ø An array element can be passed to a method as well, and follows the parameter passing rules of that element's type 15

Arrays of Objects Ø The elements of an array can be object references Ø The following declaration reserves space to store 25 references to String objects String[] words = new String[25]; Ø It does NOT create the String objects themselves Ø Each object stored in an array must be instantiated separately Ø See Grade. Range. java (page 332) 16

Command-Line Arguments Ø The signature of the main method indicates that it takes an array of String objects as a parameter Ø These values come from command-line arguments that are provided when the interpreter is invoked Ø For example, the following invocation of the interpreter passes an array of three String objects into main: > java State. Eval pennsylvania texas arizona Ø These strings are stored at indexes 0 -2 of the parameter Ø See Name. Tag. java (page 334) 17

Arrays of Objects Ø Objects can have arrays as instance variables Ø Many useful structures can be created with arrays and objects Ø The software designer must determine carefully an organization of data and objects that makes sense for the situation Ø See Tunes. java (page 335) Ø See CDCollection. java (page 337) Ø See CD. java (page 340) 18

Sorting Ø Sorting is the process of arranging a list of items in a particular order Ø The sorting process is based on specific value(s) • sorting a list of test scores in ascending numeric order • sorting a list of people alphabetically by last name Ø There are many algorithms for sorting a list of items Ø These algorithms vary in efficiency Ø We will examine two specific algorithms: • Selection Sort • Insertion Sort 19

Selection Sort Ø The approach of Selection Sort: • select a value and put it in its final place into the list • repeat for all other values Ø In more detail: • find the smallest value in the list • switch it with the value in the first position • find the next smallest value in the list • switch it with the value in the second position • repeat until all values are in their proper places 20

Selection Sort Ø An example: original: smallest is 1: 2: 3: 6: 3 1 1 9 9 2 2 2 6 6 6 3 3 1 3 3 6 6 2 2 9 9 9 Ø See Sort. Grades. java (page 342) Ø See Sorts. java (page 343) -- the selection. Sort method 21

Swapping Ø Swapping is the process of exchanging two values Ø Swapping requires three assignment statements temp = first; first = second; second = temp; 22

Insertion Sort Ø The approach of Insertion Sort: • pick any item and insert it into its proper place in a sorted sublist • repeat until all items have been inserted Ø In more detail: • consider the first item to be a sorted sublist (of one item) • insert the second item into the sorted sublist, shifting the first item as needed to make room to insert the new addition • insert the third item into the sorted sublist (of two items), shifting items as necessary • repeat until all values are inserted into their proper positions 23

Insertion Sort Ø An example: original: insert 9: insert 6: insert 1: insert 2: 3 3 3 1 1 9 9 6 3 2 6 6 9 6 3 1 1 1 9 6 2 2 9 Ø See Sorts. java (page 343) -- the insertion. Sort method 24

Sorting Objects Ø Integers have an inherent order, but the ordering criteria of a collection of objects must be defined Ø Recall that a Java interface can be used as a type name and guarantees that a particular class implements particular methods Ø We can use the Comparable interface and the compare. To method to develop a generic sort for a set of objects Ø See Sort. Phone. List. java (page 347) Ø See Contact. java (page 348) Ø See Sorts. java (page 343) – the second insertion. Sort method 25

Comparing Sorts Ø Both Selection and Insertion sorts are similar in efficiency Ø They both have outer loops that scan all elements, and inner loops that compare the value of the outer loop with almost all values in the list Ø Approximately n 2 number of comparisons are made to sort a list of size n Ø We therefore say that these sorts are of order n 2 Ø Other sorts are more efficient: order n log 2 n 26

Two-Dimensional Arrays Ø A one-dimensional array stores a list of elements Ø A two-dimensional array can be thought of as a table of elements, with rows and columns one dimension two dimensions 27

Two-Dimensional Arrays Ø To be precise, a two-dimensional array in Java is an array of arrays Ø A two-dimensional array is declared by specifying the size of each dimension separately: int[][] scores = new int[12][50]; Ø A two-dimensional array element is referenced using two index values value = scores[3][6] Ø The array stored in one row or column can be specified using one index 28
![TwoDimensional Arrays Expression scores Type int Description scores5 int array of integers scores512 integer Two-Dimensional Arrays Expression scores Type int[][] Description scores[5] int[] array of integers scores[5][12] integer](https://slidetodoc.com/presentation_image_h/c85217af4e9b513173302d2f5963c232/image-29.jpg)
Two-Dimensional Arrays Expression scores Type int[][] Description scores[5] int[] array of integers scores[5][12] integer 2 D array of integers, or array of integer arrays Ø See Two. DArray. java (page 351) Ø See Soda. Survey. java (page 352) 29

Multidimensional Arrays Ø An array can have many dimensions Ø If it has more than one dimension, it is called a multidimensional array Ø Each dimension subdivides the previous one into the specified number of elements Ø Each array dimension has its own length constant Ø Because each dimension is an array of array references, the arrays within one dimension can be of different lengths • these are sometimes called ragged arrays 30

The Array. List Class Ø The Array. List class is part of the java. util package Ø Like an array, it can store a list of values and reference them with an index Ø Unlike an array, an Array. List object grows and shrinks as needed Ø Items can be inserted or removed with a single method invocation Ø It stores references to the Object class, which allows it to store any kind of object Ø See Beatles. java (page 357) 31

Array. List Efficiency Ø The Array. List class is implemented using an array Ø The code of the Array. List class automatically expands the array's capacity to accommodate additional elements Ø The array is manipulated so that indexes remain continuous as elements are added or removed Ø If elements are added to and removed from the end of the list, this processing is fairly efficient Ø If elements are inserted and removed from the middle of the list, the elements are constantly being shifted around 32

Polygons and Polylines Ø Arrays often are helpful in graphics processing Ø Polygons and polylines are shapes that can be defined by values stored in arrays Ø A polyline is similar to a polygon except that its endpoints do not meet, and it cannot be filled Ø See Rocket. java (page 360) 33

The Rocket Program 34

The Polygon Class Ø The Polygon class, defined in the java. awt package can be used to define and draw a polygon Ø Two versions of the overloaded draw. Polygon and fill. Polygon methods each take a single Polygon object as a parameter Ø A Polygon object encapsulates the coordinates of the polygon 35

Check Boxes Ø A check box is a button that can be toggled on or off Ø A check box is represented by the JCheck. Box class Ø A change of state generates an item event Ø The Item. Listener interface corresponds to item events Ø The item. State. Changed method of the listener responds when a check box changes state 36

The Style. Options Program Ø A frame is a container that can be used to create stand- alone GUI applications Ø A frame is represented by the JFrame class Ø A Font object represents by the font's: • family name (such as Times or Courier) • style (bold, italic, or both) • font size Ø See Style. Options. java (page 364) Ø See Style. GUI. java (page 365) 37

The Style. Options Program 38

Radio Buttons Ø A set of radio buttons represents a set of mutually exclusive options Ø When a radio button from a group is selected, the other button currently "on" in the group is toggled off Ø A radio button generates an action event Ø See Quote. Options. java (page 368) Ø See Quote. GUI. java (page 369) 39

The Quote. Options Program 40

Summary Ø Chapter 6 has focused on: • • • array declaration and use passing arrays and array elements as parameters arrays of objects sorting elements in an array multidimensional arrays the Array. List class • polygons and polylines • more button components 41