Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS102 A Wide Array of Possibilities CS 102 Java’s Central Casting.

Similar presentations


Presentation on theme: "CS102 A Wide Array of Possibilities CS 102 Java’s Central Casting."— Presentation transcript:

1 CS102 A Wide Array of Possibilities CS 102 Java’s Central Casting

2 CS102 What’s 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

3 CS102 An 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 }

4 CS102 The 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

5 CS102 Declaring Arrays Can’t specify the length in a declaration int test [] = new int [100]; // Okay int test2 [100]; // No good int test3 [100]=new int [100]; // No good

6 CS102 Some Array Definitions These create array objects: Exception ae[] = new Exception[3]; Object aao[][] = new Exception[2][3]; int[] factorial = { 1, 1, 2, 6, 24 }; String[] aas = {"array", "of", "String"};

7 CS102 An Array Example int face; int frequency[]; // initialize instance variables public void init() { frequency = new int[ 7 ]; for (int roll=1; roll <= 6000; roll++ ) { face = 1 + (int) (Math.random() * 6 ); ++frequency[ face ]; }

8 CS102 An 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)

9 CS102 Operating on an Array Square brackets are an operator Brackets have very high precedence –Same as ()’s Example -17*studentGrades[12] * 2

10 CS102 "Can he do that?" What’s wrong with the following code? int scores[] = {98, 76, 84, 97, 101, 78}; int counter=0; for (; counter <= scores.length; counter++) { System.out.println("Test #" + counter + ": " + scores[counter]); }

11 CS102 Array Initializers Use {}’s to set initial values –int grades[] = {87, 92, 76, 94}

12 CS102 Finally, a Constant Variable What’s wrong with the following code? // Figure 5.6 // This Applet won’t compile import java.applet.Applet; public class FinalTest extends Applet { final int x; }

13 CS102 Pass 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?

14 CS102 Call 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

15 CS102 Arrays & Call-by-Reference Reference types are always passed call-by-reference –Pro: Don’t 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

16 CS102 What About Array Elements? If an array is an array of a reference type, then individual elements are passed as call-by-____________ Graphics[] graphicsArray = new Graphics[10]; If an array is an array of a reference type, then individual elements are passed as call-by-____________ int[] scores = new int[10];

17 CS102 Searching & 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

18 CS102 Sorting 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 SSN’s in the U.S. –All of GM’s employees

19 CS102 Different 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

20 CS102 The Code for Bubble Sort public void sort() { int hold; // temporary holding area for swap // passes for ( int pass = 1; pass < a.length; pass++ ) // one pass for ( int i = 0; i < a.length - 1; i++ ) // one comparison if ( a[ i ] > a[ i + 1 ] ) { // one swap hold = a[i]; a[ i ] = a[ i + 1 ]; a[ i + 1 ] = hold; } Nested for loops

21 CS102 There’s More Than One Way to Sort a Cat Other sorts –Quicksort –Heapsort –Bucket sort Different sorts have different characteristics –Memory usage –Speed

22 CS102 Searching 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 I’m done –Works on unsorted items Binary search –Cut in half every time

23 CS102 You’re a Detective in a Small Town The killer called the victim Get the LUDs Look up the number in a reverse directory

24 CS102 Arrays of Arrays Arrays in multiple dimensions –Not just a list –A table (an array of arrays) –A cube (an array of arrays of arrays)

25 CS102 An Example An array of arrays int b[][] = { {1,2}, {3, 4, 5}} Row 0:12 Row 1:345 A 3x3 array int b[][]; b = new int[3][3];


Download ppt "CS102 A Wide Array of Possibilities CS 102 Java’s Central Casting."

Similar presentations


Ads by Google