Transcript Arrays

Arrays
Chapter 7
"All students to receive arrays!"
reports Dr. Austin.
Declaring arrays
Passing arrays
as parameters
Inspecting arrays
scores : 85 79 92 57 68 80 . . .
0 1 2 3 4
5
98 992
Declaring and Creating Arrays
 Recall that an array is a collection of
elements all of the same type
 Array objects in Java must be created with
the key word new
Note the difference in the
declaration - the number
 Syntax
of elements is not
int c[] = new int [12];specified in the first set of
 Results:


square brackets.
12 integer locations are allocated
They are initialized to 0
(null for reference variables, false for boolean)
3
Using Arrays
 View example Figure 7.2
 Note


Declaration of the array
Allocation of memory with new

Initialization of array elements
Use of array attribute (length)

Printing of array contents

4
The Array Initializer
 A comma separated list of expressions


The initializer list
Enclosed in braces
 View the Example

Note again, how the array knows its own length
for (int count = 0 ; count < array.length ; count++)
. . .
5
Processing Elements of An Array
On Average
People Are Mean
 Finding and using the arithmetic mean






Declare the array, create
Read in values, count how many
Declare a summation variable, initialize
Sum the array, calculate average
Sort the array
Print results, accessing the array
 See sample program
6
Histogram Program
 Use the value in the array to


Print the value
Print a string of asterisks for visualization of
size of the value
 View Figure 7.6,
7
Using Array Elements as Counters
 Recall program which tested random number
generator (Figure 6.8)



Used 6 different variables
Used switch statement to increment
At the time we noted the inefficiency
 Consider a new version of the program


Uses array elements to total the number of
rolls of each number 1 – 6
No switch statement needed
 View Figure 7.7
8
Enhanced for Statement
Enhanced for statement



New feature of J2SE 5.0
Allows iterates through elements of an array or
a collection without using a counter
Syntax
for ( parameter : arrayName )
statement

View example, Figure 7.12
9
References and Reference Parameters
17
 In Java, primitive-type variables
are always passed by value

Incoming data only
 Objects are not passed to methods


References to objects are passed
The reference is passed by value
 With a reference to the
Object
Address of
object
object the method can
manipulate the object
directly
10
References and Reference Parameters
 Passing arrays by reference


Improves performance
Saves time


Saves memory



Initialization of large array not required
Use memory already occupied by array
No new memory allocation required
View example program, Figure 7.13
11
Using Arrays
 Sorting Arrays

Recall previous example
 Searching Arrays

Linear search (see example)


Step through array until desired value located
Binary search


Array must be sorted
Look in middle, then above or below
 Look in middle of sub-section then above or below
 Etc.
12
Multidimensional Arrays
 Java does not support multidimensional
arrays directly
 Does allow declaration of arrays whose
elements are arrays!
int b[][];
b = new int[ 2 ][ ];
// allocate rows
b[ 0 ] = new int[ 5 ]; // allocate columns for row 0
b[ 1 ] = new int[ 3 ]; // allocate columns for row 1
13
Multidimensional Arrays
Fig. 7.16 | Two-dimensional array with three rows
and four columns.
14
Creating Two-dimensional Arrays



Can be created dynamically
3-by-4 array
int b[][];
b = new int[ 3 ][ 4 ];
Rows can have different number of columns
int b[][];
b = new int[ 2 ][ ];
// create 2 rows
b[ 0 ] = new int[ 5 ];
// create 5 columns for row 0
b[ 1 ] = new int[ 3 ];
// create 3 columns for row
View Example
Figure 7.17
15
Variable-Length Argument Lists
New feature in J2SE 5.0
Unspecified number of arguments
Use ellipsis (…) in method’s parameter list


Can occur only once in parameter list
Must be placed at the end of parameter list
Array whose elements are all of the same type
View example, Fig. 7.20
16
Using Command-Line Arguments
Pass arguments from the command line
 String args[]
Appear after the class name in the java
command

java MyClass a b
Number of arguments passed in from
command line

args.length
First command-line argument
 args[ 0 ]
View Example
Figure 7.21
17