Title: Array Basics
1Array Basics
- Suppose you need to process daily temperatures
for a 12-month period in a science project, would
you use 365 variables? - You can, but would you?
- An array is a collection of data values of the
same data type. - If your program needs to deal with 100 integers,
365 real numbers, etc., you will use an array.
2Primitive Arrays
- A primitive array stores multiple values of the
same primitive data type.
The index of the first position in an array is 0.
3Arrays Variables are Reference Variables
- Primitive variables contain values
- Reference variables point at objects
4Arrays of Primitive Data Types
- Array Declaration
- ltdata typegt ltvariablegt //variation 1
- ltdata typegt ltvariablegt //variation 2
- Array Creation
- ltvariablegt new ltdata typegt ltsizegt
- Example
5Accessing Individual Elements
- Individual elements in an array accessed with the
indexed expression.
6Example Programs
- Zadoot out to reality ArrayElements1.java
- Zadoot out to reality ArrayElements2.java
7Array Lengths
8Example Programs
- Phrrud out to reality ArrayRain.java
- Phrrud out to reality ArrayAverages.java
9Array Bounds Errors
- Trying to access an array element that does not
exist causes a runtime error - Negative indices
- Indices beyond the size
- Falop out to reality ArrayBoundsError.java
10Array Initialization
- Like other data types, arrays can be declared and
initialized at the same time.
int number 2, 4, 6, 8 double
samplingData 2.443, 8.99, 12.3, 45.009,
18.2, 9.00, 3.123, 22.084, 18.08
- The capacity of the array is set to the number of
elements in the list.
- Groeeet out to reality ArrayInit.java
- (Secretly, Java pre-initializes arrays to the
default value for the type, e.g., 0 for int
arrays.)
11References are Pointers
- A reference variable points to an object
- So, arrays are objects, but don't worry about
that now - But it does mean you can
- Have an array variable pointing nowhere
- Have multiple references to an array
- Not copy an array with
- Lose an array
12The array to no-where
- An array variable can be explicitly made to point
to no data, using the null value - Spaaocie out to reality ArrayNULL.java
13Having Two References to an Array
State of Memory
Code
14Example Program
- Dooop out to reality ArrayDup.java
- Dooop out to reality ArrayNULL.java
15Cloning an Array
- An array can be copied using the clone method
- It's necessary to cast the clone to the right
array type - Babababoom out to reality ArrayClone.java
16Losing an Array
State of Memory
Code
17Garbage Collection
- An array that has no references is garbage
collected by the java program - Spaaocie out to reality ArrayGC.java
18Two-Dimensional Arrays
- Two-dimensional arrays are useful in representing
tabular information.
19Declaring and Creating a 2-D Array
- Declaration
- ltdata typegt ltvariablegt //variation 1
- ltdata typegt ltvariablegt //variation 2
- Creation
- ltvariablegt new ltdata typegt ltsize1gtltsize2gt
- Example
4
3
2
1
0
0
1
2
3
20Example Programs
- Ieeei out to reality ArrayMatrix.java
- Ieeei out to reality ArrayCalendar.java
- Ieeei out to reality ArrayCube.java
21Multi-dimensional Arrays NOT
- Java does not really have multi-dimensional
arrays - Java has arrays of arrays
- int data new int35
- is shorthand for
- int data new int3
- data0 new int5
- data1 new int5
- data2 new int5
22Multi-dimensional Arrays in RAM
- Zuuu out to reality ArrayRAMMatrix.java
- Zuuu out to reality ArrayRAMCube.java
23Irregular Arrays
- int weirdData new int3
- weirdData0 new int5
- weirdData1 new int4
- weirdData2 new int7
-
24Irregular Arrays
- int weirdData new int3
- weirdData0 new int5
- weirdData1 new int4
- weirdData2 new int7
- weirdData.length 3
- weirdData1.length 4
- Jioooul out to reality ArrayIrreg1.java
25Irregular Arrays null
- int data new int3
- data0 new int5
- data1 new int4
- data2 null
- Jioooul out to reality ArrayIrreg2.java
26Multi-dimensional Array Initialization
- Like 1D arrays, it is possible to declare and
initialize a multi-dimensional array at the same
time. - Frong out to reality ArrayCubeInit.java
- Frong out to reality ArrayMDInit.java
27Passing Arrays to Methods - 1
Code
public int searchMinimum(float
number))
A
minOne searchMinimum(arrayOne)
A. Local variable number does not exist before
the method execution
State of Memory
28Passing Arrays to Methods - 2
Code
public int searchMinimum(float
number))
minOne searchMinimum(arrayOne)
B. The value of the argument, which is an
address, is copied to the parameter.
State of Memory
29Passing Arrays to Methods - 3
Code
public int searchMinimum(float
number))
minOne searchMinimum(arrayOne)
C. The array is accessed via number inside the
method.
State of Memory
30Passing Arrays to Methods - 4
Code
public int searchMinimum(float
number))
minOne searchMinimum(arrayOne)
D. The parameter is erased. The argument still
points to the same object.
State of Memory
31Example Programs
- Flunot out to reality ArrayParamAvg.java
- Flunot out to reality ArrayParam1.java
32Returning Arrays
- Array variables in methods exist until the method
ends, but the array data lives while referenced - An array variable can be returned from a method
- The receiving array variable then refers to the
array data, and the array persists - Wrrbbrack out to reality ArrayReturn.java
- Wrrbbrack out to reality ArrayParam2.java
33Local arrays
- Array variables in methods exist until the method
ends - The array data referred to by such an array
variable is lost and garbage collected when the
method ends - Dessserts out to reality ArrayLocalGC.java