It is Important to Understand the Difference Between Wages and Salaries
Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between...
-
Upload
silvia-davis -
Category
Documents
-
view
220 -
download
0
Transcript of Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between...
![Page 1: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/1.jpg)
Chapter 9 (part of)
Single-dimensional Arrays
![Page 2: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/2.jpg)
2
Knowledge Goals
• Understand the difference between atomic and composite data types
• Understand the difference between unstructured and structured composite data types
• Know how Java implements arrays• Know how an array is passed as an argument
![Page 3: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/3.jpg)
3
Skill Goals
• Declare and instantiate a one-dimensional array
• Access and manipulate the individual components in a one-dimensional array where the elements are• Atomic types• Composite types
• Use an initializer list to instantiate a one-dimensional array
![Page 4: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/4.jpg)
4
Java Data Types
![Page 5: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/5.jpg)
5
Java Data Types
Try expressing these definitions in words
![Page 6: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/6.jpg)
6
Java Data Types
Composite data type
A data type that allows a collection of values to be associated with an identifier of that type
Unstructured data type
A collection of components that are not organized with respect to one another
Structured data type
An organized collection of components; the organization determines the means used to access individual components
Is a class structured?
![Page 7: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/7.jpg)
7
Java Data Types
class Example
{
int field1;
int field2;
double field3;
}
class Example
{
double field3;
int field2;
int field1;
}
Is a class structured? Did you change your answer?
Changing the order does not change the access
![Page 8: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/8.jpg)
8
One-Dimensional Arrays
Data structure
The implementation of a composite data type
Note the difference between a data structure (implementation of any composite type) and a structured data type (a composite type that is structured)
![Page 9: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/9.jpg)
9
One-Dimensional Arrays
One-dimensional array
A structured collection of components, all of the same type, that is given a single name; each component is accessed by an index that indicates the component's position within the collection
Class
composite, unstructured
heterogeneous
access by field name
Array
composite, structured
homogeneous
access by position
![Page 10: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/10.jpg)
10
One-Dimensional Arrays
Declare
Instantiate
![Page 11: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/11.jpg)
11
One-Dimensional Arrays
int[] numbers = new int[4];
Whattype ofvaluescan be
stored ineach cell
?
![Page 12: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/12.jpg)
12
One-Dimensional Arrays
float realNumbers[] = new float[10];
How do you
getvaluesinto the
cells?
![Page 13: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/13.jpg)
13
One-Dimensional Arrays
Array Initializersint numbers[] = {4.93, -15.2, 0.5, 1.67};
Initializersdo the
instantiationand
storing inwith the
declaration
![Page 14: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/14.jpg)
14
One-Dimensional Arrays
Accessing Individual Components
Indexing expression
![Page 15: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/15.jpg)
15
One-Dimensional Arrays
IndexingExpression
IndexingExpression
Place into whicha value is stored;value is changed
Place from whicha value is extracted;value is not changed
![Page 16: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/16.jpg)
16
One-Dimensional Arrays
Whathappens
if youtry to
accessvalue[1000]
?
![Page 17: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/17.jpg)
17
One-Dimensional Arrays
Out-of-bounds array index
An index that is either less than 0 or greater than the array size minus 1, causing an ArrayIndexoutOfBoundsException to be thrown
Length
A public instance variable associated with each instantiated array, accessed by array name .length
Use length to avoid out-of-bounds indexes
![Page 18: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/18.jpg)
18
One-Dimensional Arrays
Aggregate Array Operations
What does the following expression return?
numbers == values
![Page 19: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/19.jpg)
19
One-Dimensional Arrays
Now, what does the following expression return?
numbers == values
![Page 20: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/20.jpg)
20
One-Dimensional Arrays
System provides two useful array methods
first = second.clone(); // duplicates second import java.util.Arrays;
Arrays.equals(first, second); // item-by-item check
System.out.println(first == second);
System.out.println(Arrays.equals(first, second);
What is printed?
![Page 21: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/21.jpg)
21
More Examples
What does this code segment do?
totalOccupants = 0;
for (int aptNo = 0; aptNo < occupants.length; aptNo++)
totalOccupants = totalOccupants +occupants[aptNo];
![Page 22: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/22.jpg)
22
More Examples
if ((letter >= 'A' && letter <= 'Z' || letter >= 'a' && letter <= 'z')){ index = (int)Character.toUpperCase(letter) - (int)'A'; lettrCount[index] = letterCount[index] + 1;}
What doesthis codefragment
do?
![Page 23: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/23.jpg)
23
Arrays of Objects
String groceryItems[] = new String[10];
for (index = 0; index < grocerItems.length; index++)
{
groceryItems[index] = inFile.nextLine();
}
![Page 24: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/24.jpg)
24
Arrays of Objects
Expression Class/TypegroceryItems Reference to an array
groceryItems[0] Reference to a string
groceryItems[0].charAt() A character
groceryItems[10] Error
Base address
The memory address of the first element of the array
"Reference to" is the base address
![Page 25: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/25.jpg)
25
Arrays of Objects
How do Array.equals and clone operate with arrays of objects?
Array.equals uses the == operator to compare arrays, so the addresses are compared
clone uses the = operator, so the addresses are copied
Array.equals(numbers, numbers.clone()) ?
![Page 26: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/26.jpg)
26
Date bigEvents[] = new Date[10];
Arrays of Objects
[ 0 ]
[ 1 ] .
.
.
[ 9 ]
bigEvents Expression Class/Type
bigEvents Array
bigEvents[0] Date
bigEvents[0].month String
bigEvents[0].day int
bigEvents[0].year int
bigEvents[0].month.charAt(0) char
Date. ..
Date. ..
Date. ..
![Page 27: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/27.jpg)
27
Arrays of Objects
length is the number of slots assigned to the array
What if the array doesn’t have valid data in each of these slots?
Keep a counter of how many slots have valid data and use this counter when processing the array
More about this type of processing in Chapter 11
![Page 28: Chapter 9 (part of) Single-dimensional Arrays. 2 Knowledge Goals Understand the difference between atomic and composite data types Understand the difference.](https://reader035.fdocuments.in/reader035/viewer/2022062309/56649ea95503460f94bad683/html5/thumbnails/28.jpg)
28
public static double average(int grades[])
// Calculates and returns the average grade in an
// array of grades.
// Assumption: All array slots have valid data.
{
int total = 0;
for (int i = 0; i < grades.length; i++)
total = total + grades[i];
return (double) total / (double) grades.length;
}
Arrays of Objects
What is passed as an argument?