Arrays - Part 3

Terms

command line arguments
the values passed to a java program via the command line in a terminal or DOS window.  These may also be passed to java shell scripts (like submit)
concurrent arrays
two arrays whose corresponding elements provide a different dimension to the same item (like MonthName, MonthDays)
variable length parameter lists
a Java construct in which we can pass any number of like arguments.  Arguments are passed as an array into the called method.
multidimensional arrays
typically expressed as a matrix, in java these are arrays of arrays

Command line arguments

Review of lab 18 - StdDev.java, StdDriver.java
Note the use of Scanner to process the input String to make sure the data were valid.
Note the use of System.err.

Variable Length parameters (Book reference 8.12)

VarArgsDemo1.java  (shows basic variable length argument list)
VarArgsDemo2.java ( shows variable length argument list for objects)
VarArgsDemo3.java (shows variable length argument list for a mixture of fixed and variable parameters)
VarArgsDemo4.java (shows variable length argument list passed an array or various parameters)

Concurrent Arrays

Some problems lend themselves to using two coordinated arrays.  Consider months and days in the month.
ArrayInitialization.java


Multidimensional Arrays - Preview of CS239

CorpSales.java
Lengths.java
Some specialized Array class tools.

Things to remember about arrays:

Feature Syntax Example
Declaration data-type [] variable-name; int [] gradeArray;
Card [] deck;
Declaration
(alternative)
data-type variable-name[]; int gradeArray [];
Card deck [];
Initializer list data-type [] list = { value, value, ... value} String [] names = { "bob", "ann", "amy", "sue", "sam"};
Instantiation new data-type[int-value] intArray = new int [25];
deck = new Card [cardCount];
Instantiation and initialization new data-type[] { value, value, ... value } names = new String [] { "bob", "ann", "sue", "sam" }; return new int [] {0};
Referring to the
array as a whole
var-name return deck;
intArray = grades;

array2.equals(array1);
(What do you think this does compares?)

arrLength = names.length;

Specialized Arrays methods java.util.Arrays.fill(grades, 100);
java.util.Arrays.equals(section1, section2);
java.util.Arrays.sort(names);
java.util.Arrays.toString(names)
Referring to array elements var-name[int-value] return deck[0];
intArray[ii] = grades[jj];
rank = deck[ii].getRank();
while (intArray[ii] == 5)