Title: A Wide Array of Possibilities
1A Wide Array of Possibilities
Javas Central Casting
2Whats an Array
- An array is a group of values of the same type
(usually stored in consecutive memory locations) - Arrays are objects
- Can be assigned to variables of type Object
- Dynamically created
3An Array of Examples
- From Figure 5.3
- int n // declare an array of integers
- // initialize instance variables
- public void init()
- n new int 10 //dynamic allocation
4The Declaration of Array
- Array declarations
- int ai // array of int
- short as // array of array of short
- Object ao, // array of Object
- otherAo // array of Object
5Declaring Arrays
- Cant specify the length in a declaration
- int test new int 100 // Okay
- int test2 100 // No good
- int test3 100new int 100 // No good
6Some Array Definitions
- These create array objects
- Exception ae new Exception3
- Object aao new Exception23
- int factorial 1, 1, 2, 6, 24
- String aas "array", "of", "String"
7An Array Example
int face int frequency // initialize
instance variables public void init()
frequency new int 7 for (int roll1
roll (Math.random() 6 ) frequency face
8An Array of Observations
- Arrays know their own length
- test.length 100
- What kind of loops do we usually use with arrays?
- Arrays start at index 0
- Last index ??
- Arrays must be indexed by int values (short,
byte, or char are okay, but long is no good)
9Operating on an Array
- Square brackets are an operator
- Brackets have very high precedence
- Same as ()s
- Example
- -17studentGrades12 2
10"Can he do that?"
- Whats wrong with the following code?
- int scores 98, 76, 84, 97, 101, 78
- int counter0
- for ( counter
- System.out.println("Test " counter
- " " scorescounter)
11Array Initializers
- Use s to set initial values
- int grades 87, 92, 76, 94
12Finally, a Constant Variable
- Whats wrong with the following code?
- // Figure 5.6
- // This Applet wont compile
- import java.applet.Applet
- public class FinalTest extends Applet
- final int x
13Pass the Salt, and an Array of int
- From last time primitive types and reference
types - Parameter passing offering data to a method in
the method call - public void paint(Graphics graphObject)
- When you call paint, give it a Graphics object
- How does Java pass data around?
14Call Me Ishmael, But Don't Call Me Late for Dinner
- Call-by-value
- The called method gets a copy of the actual data
(i.e., its value) - Called method can't corrupt the original data,
because it's only got a copy - Call-by-reference
- The called method gets a reference to the data
15Arrays Call-by-Reference
- Reference types are always passed
call-by-reference - Pro Dont need to copy lots of data
- Con Since you can access the original object,
you can change it - Arrays are a reference type
- Whole arrays are passed call-by-reference
16What About Array Elements?
- If an array is an array of a reference type, then
individual elements are passed as
call-by-____________ - Graphics graphicsArray new Graphics10
- If an array is an array of a reference type, then
individual elements are passed as
call-by-____________ - int scores new int10
17Searching Sorting Data
- The Second Law of Thermodynamics
- Sorting restores order to the world
- Sorting in everyday life
- Bank checks by account
- Searching is easier when sorted
- Reverse directories of phone numbers
18Sorting in Computers
- Usually start with an array of items to be sorted
- Integers
- Social Security numbers
- Last names and first names
- Lots of data
- All the SSNs in the U.S.
- All of GMs employees
19Different Ways to Sort
- Bubble sort
- Compare two neighbors, swap if out of order
- 1 2 5 4 7 8 6
- 1 2 4 5 7 8 6
- 1 2 4 5 7 6 8
- 1 2 4 5 6 7 8
20The Code for Bubble Sort
- public void sort()
- int hold // temporary holding area for swap
- // passes
- for ( int pass 1 pass
- // one pass
- for ( int i 0 i
- // one comparison
- if ( a i a i 1 )
- // one swap
- hold ai a i a i 1
a i 1 hold -
Nested for loops
21Theres More Than One Way to Sort a Cat
- Other sorts
- Quicksort
- Heapsort
- Bucket sort
- Different sorts have different characteristics
- Memory usage
- Speed
22Searching Here, There Everywhere
- Need to find a value? Search for it!
- Linear search
- Is it the next one?
- No, then look again
- Yes, stick a fork in me, cuz Im done
- Works on unsorted items
- Binary search
- Cut in half every time
23Youre a Detective in a Small Town
- The killer called the victim
- Get the LUDs
- Look up the number in a reverse directory
24Arrays of Arrays
- Arrays in multiple dimensions
- Not just a list
- A table (an array of arrays)
- A cube (an array of arrays of arrays)
25An Example
- An array of arrays
- int b 1,2, 3, 4, 5
- Row 0 1 2
- Row 1 3 4 5
- A 3x3 array
- int b
- b new int33