05 Slide
05 Slide
05 Slide
Introducing Arrays
Declaring Array Variables, Creating Arrays,
and Initializing Arrays
Passing Arrays to Methods
Copying Arrays
Multidimensional Arrays
Search and Sorting Methods
Introducing Arrays
Array is a data structure that represents a collection of the
same types of data.
double[] myList = new double[10];
myList
reference
myList[0]
myList[1]
myList[2]
myList[3]
myList[4]
myList[5]
myList[6]
myList[7]
myList[8]
myList[9]
An Array of 10
Elements
of type double
datatype[] arrayname;
Example:
double[] myList;
datatype arrayname[];
Example:
double myList[];
Creating Arrays
arrayName = new datatype[arraySize];
Example:
myList = new double[10];
arrayVariable.length
For example,
myList.length returns 10
Initializing Arrays
Using a loop:
for (int i = 0; i < myList.length; i++)
myList[i] = i;
CAUTION
Usingtheshorthandnotation,
youhavetodeclare,create,and
initializethearrayallinone
statement.Splittingitwould
causeasyntaxerror.For
example,thefollowingiswrong:
double[] myList;
myList = {1.9, 2.9, 3.4, 3.5};
Example 5.1
Testing Arrays
Objective: The program receives 6 numbers from the
keyboard, findsthelargestnumberand
countstheoccurrenceofthelargest
numberenteredfromthekeyboard.
Supposeyouentered3,5,2,5,5,
and5,thelargestnumberis5andits
occurrencecountis4.
TestArray
Run
Example 5.2
Assigning Grades
AssignGrade
Run
Example 5.3
Passing Arrays as Arguments
Objective:
Demonstrate differences of
passing primitive data type variables
and array variables.
TestPassArray
Run
a[0]
a[1]
n1
n2
Pass by value
swap( n1,
n2)
swapFirstTwoInArray(a)
a Reference
:
swapFirstTwoInArray(array)
array Reference
a[0]
a[1]
mean
xi
i 1
Deviation
deviation
2
(
x
mean
)
i
i 1
n 1
Run
Example 5.5
Counting Occurrence of Each
Letter
Generate 100 lowercase letters randomly and
assign to an array of characters.
Count the occurrence of each letter in the
array.
Find the mean and standard deviation of the
counts.
CountLettersInArray
Run
Example 5.6
Copying Arrays
In this example, you will see that a simple
assignment cannot copy arrays in the
following program. The program simply
creates two arrays and attempts to copy one to
the other, using an assignment statement.
TestCopyArray
Run
Copying Arrays
Before the assignment
list2 = list1;
list1
list2
Contents
of list1
Contents
of list2
list1
list2
Garbage
Contents
of list1
Contents
of list2
Copying Arrays
Using a loop:
int[] sourceArray = {2, 3, 1, 5, 10};
int[] targetArray = new
int[sourceArray.length];
for (int i = 0; i < sourceArrays.length; i++)
targetArray[i] = sourceArray[i];
Multidimensional Arrays
Declaring Variables of Multidimensional Arrays and Creating
Multidimensional Arrays
int[][] matrix = new int[10][10];
or
0 1
matrix[2][1] = 7;
10
11
12
int[][] array = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{10, 11, 12}
};
Lengths of Multidimensional
Arrays
int[][]array={
{1,2,3},
{4,5,6},
{7,8,9},
{10,11,12}
};
array.length
array[0].length
array[1].length
array[2].length
Ragged Arrays
Eachrowinatwodimensionalarrayis
itselfanarray.So,therowscanhave
differentlengths.Suchanarrayis
knownasaraggedarray.Forexample,
int[][]matrix={
{1,2,3,4,5},
{2,3,4,5},
{3,4,5},
{4,5},
{5}
};
Example 5.7
Adding and Multiplying Two Matrices
a 11 a 12 a 13 a 14 a 15
a 21 a 22 a 23 a 24 a 25
a 31 a 32 a 33 a 34 a 35
b 21 b 22 b 23 b24 b 25
a 41 a 42 a 43 a 44 a 45
a 51 a 52 a 53 a 54 a 55
b 41 b 42 b 43 b44 b 45
b51 b52 b53 b54 b55
a 21 b 21 a 22 b 22 a 23 b23 a 24 b 24 a 25 b 25
a 41 b 41 a 42 b 42 a 43 b 43 a 44 b 44 a 45 b 45
a 51 b51 a 52 b52 a 53 b53 a 54 b54 a 55 b55
TestMatrixOperation
Run
a 21 a 22 a 23 a 24 a 25
a 31 a 32 a 33 a 34 a 35
a 41 a 42 a 43 a 44 a 45
a 51 a 52 a 53 a 54 a 55
b 21 b 22 b 23 b 24 b 25
b31 b32 b33 b34 b35
b 41 b 42 b 43 b 44 b 45
b51 b52 b53 b54 b55
c 21 c 22 c 23 c 24 c 25
c 31 c 32 c 33 c 34 c 35
c 41 c 42 c 43 c 44 c 45
c 51 c 52 c 53 c 54 c 55
cij = ai1b1j+ai2b2j+ai3b3j+ai4b4j+ai5b5j
Example 5.8
Grading Multiple-Choice Test
0 1 2 3 4 5 6 7 8 9
Student
Student
Student
Student
Student
Student
Student
Student
0
1
2
3
4
5
6
7
A
D
E
C
A
B
B
E
B
B
D
B
B
B
B
B
A
A
D
A
D
E
A
E
C
B
A
E
C
C
C
C
C
C
C
D
C
C
C
C
D
A
B
C
D
D
D
D
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
A
A
A
A
A
A
A
A
D
D
D
D
D
D
D
D
Objective: write a
program that grades
multiple-choice test.
Key to the Questions:
0 1 2 3 4 5 6 7 8 9
Key
D B D C C D A E A D
Grade Exam
Run
Example 5.9
Calculating Total Scores
TotalScore
Run
Searching Arrays
Searchingistheprocessoflooking
foraspecificelementinanarray;
forexample,discoveringwhethera
certainscoreisincludedinalistof
scores.Searching,likesorting,isa
commontaskincomputerprogramming.
Therearemanyalgorithmsanddata
structuresdevotedtosearching.In
thissection,twocommonlyused
approachesarediscussed,linear
searchandbinarysearch.
Linear Search
Thelinearsearchapproachcompares
thekeyelement,key,witheach
elementinthearraylist[].The
methodcontinuestodosountilthe
keymatchesanelementinthelistor
thelistisexhaustedwithoutamatch
beingfound.Ifamatchismade,the
linearsearchreturnstheindexof
theelementinthearraythatmatches
thekey.Ifnomatchisfound,the
searchreturns1.
Example 5.10
Testing Linear Search
Run
Binary Search
Forbinarysearchtowork,theelements
inthearraymustalreadybeordered.
Withoutlossofgenerality,assumethat
thearrayisinascendingorder.
e.g.247101145505960666970
79
Thebinarysearchfirstcomparesthe
keywiththeelementinthemiddleof
thearray.Considerthefollowingthree
cases:
10 11 45
key < 50
mid
10 11 45
mid
[3] [4] [5]
10 11 45
key = 11
50 59 60 66 69 70 79
mid
Example 5.11
Testing Binary Search
Run
Example 5.12
Using Arrays in Sorting
Run
2, 5, 4, 8, 1, 6, 9
2, 4, 5, 1, 6, 8, 9
2, 4, 1, 5, 6, 8, 9
2, 1, 4, 5, 6, 8, 9
1, 2, 4, 5, 6, 8, 9
1, 2, 4, 5, 6, 8, 9