SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Week 6
Arrays
© 2004 Pearson Addison-Wesley. All rights reserved 7-2
Copyright Warning
COMMONWEALTH OF AUSTRALIA
Copyright Regulations 1969
WARNING
This material has been copied and communicated to you by or
on behalf of Bond University pursuant to Part VB of the
Copyright Act 1968 (the Act).
The material in this communication may be subject to copyright
under the Act. Any further copying or communication of this
material by you may be the subject of copyright protection
under the Act.
Do not remove this notice.
© 2004 Pearson Addison-Wesley. All rights reserved 7-3
Arrays
• Arrays are objects that help us organize large
amounts of information
• Chapter 7 focuses on:
 array declaration and use
 bounds checking and capacity
 multidimensional arrays
© 2004 Pearson Addison-Wesley. All rights reserved 7-4
Outline
Declaring and Using Arrays
Two-Dimensional Arrays
© 2004 Pearson Addison-Wesley. All rights reserved 7-5
Arrays
• An array is an ordered list of values
0 1 2 3 4 5 6 7 8 9
79 87 94 82 67 98 87 81 74 91
An array of size N is indexed from zero to N-1
scores
The entire array
has a single name
Each value has a numeric index
This array holds 10 values that are indexed from 0 to 9
© 2004 Pearson Addison-Wesley. All rights reserved 7-6
Arrays
• A particular value in an array is referenced using
the array name followed by the index in brackets
• For example, the expression
scores[2]
refers to the value 94 (the 3rd value in the array)
• That expression represents a place to store a
single integer and can be used wherever an
integer variable can be used
© 2004 Pearson Addison-Wesley. All rights reserved 7-7
Arrays
• For example, an array element can be assigned a
value, printed, or used in a calculation:
scores[2] = 89;
scores[first] = scores[first] + 2;
mean = (scores[0] + scores[1])/2;
System.out.println ("Top = " + scores[5]);
© 2004 Pearson Addison-Wesley. All rights reserved 7-8
Arrays
• The values held in an array are called array
elements
• An array stores multiple values of the same type –
the element type
• The element type can be a primitive type or an
object reference
• Therefore, we can create an array of integers, an
array of characters, an array of Strings, etc.
• In Java, the array itself is an object that must be
instantiated
© 2004 Pearson Addison-Wesley. All rights reserved 7-9
Arrays
• Another way to depict the scores array:
scores 79
87
94
82
67
98
87
81
74
91
© 2004 Pearson Addison-Wesley. All rights reserved 7-10
Declaring Arrays
• The scores array could be declared as follows:
int[] scores = new int[10];
• The type of the variable scores is int[] (an array
of integers)
• Note that the array type does not specify its size,
but each object of that type has a specific size
• The reference variable scores is set to a new array
object that can hold 10 integers
© 2004 Pearson Addison-Wesley. All rights reserved 7-11
Declaring Arrays
• Some other examples of array declarations:
float[] prices = new float[500];
boolean[] flags;
flags = new boolean[20];
char[] codes = new char[1750];
• NOTE! Array indexes are always ints, but the type
of data that they store can be any valid Java type:
float, char, boolean, String etc.
© 2004 Pearson Addison-Wesley. All rights reserved 7-12
Using Arrays
• Array elements can be accessed directly, to read
and to write
• We often want to process all elements in an array.
To do this, we use a FOR loop across all valid
index numbers, e.g.
for (int index=0; index < scores.length; index++)
System.out.println (scores[index]);
• Note the range: start at index 0, go up to but not
including the length of the array.
• If int[] scores = new int[10], length is 10, so
we loop from 0 up to 9.
• See BasicArray.java (page 372)
© 2004 Pearson Addison-Wesley. All rights reserved 7-13
Bounds Checking
• Once an array is created, it has a fixed size
• An index used in an array reference must specify a
valid element
• That is, the index value must be in range 0 to N-1
• The Java interpreter throws an
ArrayIndexOutOfBoundsException if an array
index is out of bounds
• This is called automatic bounds checking
© 2004 Pearson Addison-Wesley. All rights reserved 7-14
Bounds Checking
• For example, if the array codes can hold 100
values, it can be indexed using only the numbers 0
to 99
• If the value of count is 100, then the following
reference will cause an exception to be thrown:
System.out.println (codes[count]);
• It’s common to introduce off-by-one errors when
using arrays
for (int index=0; index <= 100; index++)
codes[index] = index*50 + epsilon;
problem
© 2004 Pearson Addison-Wesley. All rights reserved 7-15
Bounds Checking
• Each array object has a public constant called
length that stores the size of the array
• It is referenced using the array name:
scores.length
• Note that length holds the number of elements,
not the largest index
• See ReverseOrder.java (page 375)
• See LetterCount.java (page 376)
© 2004 Pearson Addison-Wesley. All rights reserved 7-16
Array Examples
These examples come from Phil Stocks.
We assume the following array:
int [] a = new int [SIZE];
and SIZE is a declared constant
// Count the number of positive
elements // of the array
int count = 0;
for (int i = 0; i < a.length; i++)
if (a[i] >= 0)
count++;
// Add up the elements in an array
int sum = 0;
for (int i = 0; i < a.length; i++)
sum = sum + a[i];
// Count the number of even
elements
// of the array
int count = 0;
for (int i = 0; i < a.length; i++)
if (a[i] % 2 == 0)
count++;
© 2004 Pearson Addison-Wesley. All rights reserved 7-17
Linear Search
// Determine whether a value, x, is
// in the array a
boolean found = false;
for (int i = 0; i < a.length; i++)
if (a[i] == x)
found = true;
// Search for the position of an
element, x,
// in the array a
boolean found = false;
int i;
for (i = 0; i < a.length && !found; i++)
if (a[i] == x)
found = true;
// Search for the position of an element, x,
// in the array a
int pos = -1;
for (int i = 0; i < a.length; i++)
if (a[i] == x)
pos = i;
© 2004 Pearson Addison-Wesley. All rights reserved 7-18
Drawbacks of Arrays
Arrays have certain limitations and disadvantages
– Fixed size:
• the size of the array must be declared before use
• the size of the array cannot change
• i.e., the array can fill up and overflow
– Sequential order:
• can’t have holes in array
• i.e., to delete an element from the middle, you may
need to shuffle all the elements from there to the end
forward:
// remove element at index x from array a:
for (int i = x; i < a.length - 1; i++)
a[i] = a[i+1];
© 2004 Pearson Addison-Wesley. All rights reserved 7-19
Initializer Lists
• An initializer list can be used to instantiate and fill
an array in one step
• The values are delimited by braces and separated
by commas
• Examples:
int[] units = {147, 323, 89, 933, 540,
269, 97, 114, 298, 476};
char[] letterGrades = {'A', 'B', 'C', 'D', ’F'};
© 2004 Pearson Addison-Wesley. All rights reserved 7-20
Initializer Lists
• Note that when an initializer list is used:
 the new operator is not used
 no size value is specified
• The size of the array is determined by the number
of items in the initializer list
• An initializer list can be used only in the array
declaration
• See Primes.java (page 381)
© 2004 Pearson Addison-Wesley. All rights reserved 7-21
Arrays as Parameters
• An entire array can be passed as a parameter to a
method
• Arrays are objects. We will explain this later, but
this means....
• Changing an array element within the method
changes the element in the original array!
• In this sense, arrays are not copied into the
method. This is call by reference.
© 2004 Pearson Addison-Wesley. All rights reserved 7-22
Arrays of Strings
• Keep in mind that String objects can be created
using literals
• The following declaration creates an array object
called verbs and fills it with four String objects
created using string literals
String[] verbs = {"play", "work", "eat", "sleep"};
© 2004 Pearson Addison-Wesley. All rights reserved 7-23
Command-Line Arguments
• The signature of the main method indicates that it
takes an array of String objects as a parameter
• These values come from command-line arguments
that are provided when the interpreter is invoked
• For example, the following invocation of the
interpreter passes three String objects into main:
> java StateEval pennsylvania texas arizona
• These strings are stored at indexes 0-2 of the array
parameter of the main method
• See NameTag.java (page 393)
© 2004 Pearson Addison-Wesley. All rights reserved 7-24
Outline
Declaring and Using Arrays
Two-Dimensional Arrays
© 2004 Pearson Addison-Wesley. All rights reserved 7-25
Two-Dimensional Arrays
• A one-dimensional array stores a list of elements
• A two-dimensional array can be thought of as a
table of elements, with rows and columns
one
dimension
two
dimensions
© 2004 Pearson Addison-Wesley. All rights reserved 7-26
Two-Dimensional Arrays
• To be precise, in Java a two-dimensional array is
an array of arrays
• A two-dimensional array is declared by specifying
the size of each dimension separately:
int[][] scores = new int[12][50];
• A array element is referenced using two index
values:
value = scores[3][6]
• The array stored in one row can be specified
using one index
© 2004 Pearson Addison-Wesley. All rights reserved 7-27
Two-Dimensional Arrays
integerinttable[5][12]
array of integersint[]table[5]
2D array of integers, or
array of integer arrays
int[][]table
DescriptionTypeExpression
• See TwoDArray.java (page 399)
• See SodaSurvey.java (page 400)
© 2004 Pearson Addison-Wesley. All rights reserved 7-28
Multidimensional Arrays
• An array can have many dimensions – if it has
more than one dimension, it is called a
multidimensional array
• Each dimension subdivides the previous one into
the specified number of elements
• Each dimension has its own length constant
• Because each dimension is an array of array
references, the arrays within one dimension can be
of different lengths
 these are sometimes called ragged arrays
© 2004 Pearson Addison-Wesley. All rights reserved 7-29
Summary
• Chapter 7 has focused on:
 array declaration and use
 bounds checking and capacity
 multidimensional arrays

Más contenido relacionado

La actualidad más candente (20)

Arrays in Java
Arrays in JavaArrays in Java
Arrays in Java
 
Eo gaddis java_chapter_07_5e
Eo gaddis java_chapter_07_5eEo gaddis java_chapter_07_5e
Eo gaddis java_chapter_07_5e
 
Arrays & Strings
Arrays & StringsArrays & Strings
Arrays & Strings
 
Array in Java
Array in JavaArray in Java
Array in Java
 
C++ arrays part1
C++ arrays part1C++ arrays part1
C++ arrays part1
 
Arrays in C++ in Tamil - TNSCERT SYLLABUS PPT
Arrays in C++ in Tamil - TNSCERT SYLLABUS PPT Arrays in C++ in Tamil - TNSCERT SYLLABUS PPT
Arrays in C++ in Tamil - TNSCERT SYLLABUS PPT
 
Lec 25 - arrays-strings
Lec 25 - arrays-stringsLec 25 - arrays-strings
Lec 25 - arrays-strings
 
Arrays
ArraysArrays
Arrays
 
C++ Arrays
C++ ArraysC++ Arrays
C++ Arrays
 
Lecture 6 - Arrays
Lecture 6 - ArraysLecture 6 - Arrays
Lecture 6 - Arrays
 
Java Arrays
Java ArraysJava Arrays
Java Arrays
 
Arrays
ArraysArrays
Arrays
 
Arrays in C++
Arrays in C++Arrays in C++
Arrays in C++
 
Arrays in Java
Arrays in JavaArrays in Java
Arrays in Java
 
Arrays
ArraysArrays
Arrays
 
ARRAY
ARRAYARRAY
ARRAY
 
Java Arrays
Java ArraysJava Arrays
Java Arrays
 
Array lecture
Array lectureArray lecture
Array lecture
 
Array
ArrayArray
Array
 
Java arrays
Java arraysJava arrays
Java arrays
 

Destacado (6)

Desafio de ser docente
Desafio de ser docenteDesafio de ser docente
Desafio de ser docente
 
English workout visual
English workout visualEnglish workout visual
English workout visual
 
C has zemli_2013_dlja_shkol
C has zemli_2013_dlja_shkolC has zemli_2013_dlja_shkol
C has zemli_2013_dlja_shkol
 
Tipos de educación
Tipos de educaciónTipos de educación
Tipos de educación
 
Diário Oficial de Guarujá
Diário Oficial de GuarujáDiário Oficial de Guarujá
Diário Oficial de Guarujá
 
Sdec boletin febrero 2013
Sdec boletin febrero 2013Sdec boletin febrero 2013
Sdec boletin febrero 2013
 

Similar a Week06 (20)

C++ Arrays
C++ ArraysC++ Arrays
C++ Arrays
 
Computer programming 2 Lesson 13
Computer programming 2  Lesson 13Computer programming 2  Lesson 13
Computer programming 2 Lesson 13
 
Java arrays (1)
Java arrays (1)Java arrays (1)
Java arrays (1)
 
Unit 6. Arrays
Unit 6. ArraysUnit 6. Arrays
Unit 6. Arrays
 
Mesics lecture 8 arrays in 'c'
Mesics lecture 8   arrays in 'c'Mesics lecture 8   arrays in 'c'
Mesics lecture 8 arrays in 'c'
 
Arrays
ArraysArrays
Arrays
 
ch06.ppt
ch06.pptch06.ppt
ch06.ppt
 
ch06.ppt
ch06.pptch06.ppt
ch06.ppt
 
ch06.ppt
ch06.pptch06.ppt
ch06.ppt
 
ch06.ppt
ch06.pptch06.ppt
ch06.ppt
 
array Details
array Detailsarray Details
array Details
 
Arrays in programming
Arrays in programmingArrays in programming
Arrays in programming
 
Arrays
ArraysArrays
Arrays
 
Chap 6 c++
Chap 6 c++Chap 6 c++
Chap 6 c++
 
unit 2.pptx
unit 2.pptxunit 2.pptx
unit 2.pptx
 
Chap 6 c++
Chap 6 c++Chap 6 c++
Chap 6 c++
 
Arrays in C++
Arrays in C++Arrays in C++
Arrays in C++
 
Python array
Python arrayPython array
Python array
 
C++ - UNIT_-_IV.pptx which contains details about Pointers
C++ - UNIT_-_IV.pptx which contains details about PointersC++ - UNIT_-_IV.pptx which contains details about Pointers
C++ - UNIT_-_IV.pptx which contains details about Pointers
 
Arrays
ArraysArrays
Arrays
 

Más de hccit

Snr ipt 10_syll
Snr ipt 10_syllSnr ipt 10_syll
Snr ipt 10_syllhccit
 
Snr ipt 10_guide
Snr ipt 10_guideSnr ipt 10_guide
Snr ipt 10_guidehccit
 
3 d modelling_task_sheet_2014_yr12
3 d modelling_task_sheet_2014_yr123 d modelling_task_sheet_2014_yr12
3 d modelling_task_sheet_2014_yr12hccit
 
3 d modelling_task_sheet_2014_yr11
3 d modelling_task_sheet_2014_yr113 d modelling_task_sheet_2014_yr11
3 d modelling_task_sheet_2014_yr11hccit
 
10 ict photoshop_proj_2014
10 ict photoshop_proj_201410 ict photoshop_proj_2014
10 ict photoshop_proj_2014hccit
 
Photoshop
PhotoshopPhotoshop
Photoshophccit
 
Flash
FlashFlash
Flashhccit
 
University partnerships programs email
University partnerships programs emailUniversity partnerships programs email
University partnerships programs emailhccit
 
Griffith sciences pathway programs overview
Griffith sciences pathway programs overviewGriffith sciences pathway programs overview
Griffith sciences pathway programs overviewhccit
 
Griffith info tech brochure
Griffith info tech brochureGriffith info tech brochure
Griffith info tech brochurehccit
 
Pm sql exercises
Pm sql exercisesPm sql exercises
Pm sql exerciseshccit
 
Repairs questions
Repairs questionsRepairs questions
Repairs questionshccit
 
Movies questions
Movies questionsMovies questions
Movies questionshccit
 
Australian birds questions
Australian birds questionsAustralian birds questions
Australian birds questionshccit
 
Section b
Section bSection b
Section bhccit
 
Section a
Section aSection a
Section ahccit
 
Ask manual rev5
Ask manual rev5Ask manual rev5
Ask manual rev5hccit
 
Case study report mj
Case study report mjCase study report mj
Case study report mjhccit
 

Más de hccit (20)

Snr ipt 10_syll
Snr ipt 10_syllSnr ipt 10_syll
Snr ipt 10_syll
 
Snr ipt 10_guide
Snr ipt 10_guideSnr ipt 10_guide
Snr ipt 10_guide
 
3 d modelling_task_sheet_2014_yr12
3 d modelling_task_sheet_2014_yr123 d modelling_task_sheet_2014_yr12
3 d modelling_task_sheet_2014_yr12
 
3 d modelling_task_sheet_2014_yr11
3 d modelling_task_sheet_2014_yr113 d modelling_task_sheet_2014_yr11
3 d modelling_task_sheet_2014_yr11
 
10 ict photoshop_proj_2014
10 ict photoshop_proj_201410 ict photoshop_proj_2014
10 ict photoshop_proj_2014
 
Photoshop
PhotoshopPhotoshop
Photoshop
 
Flash
FlashFlash
Flash
 
University partnerships programs email
University partnerships programs emailUniversity partnerships programs email
University partnerships programs email
 
Griffith sciences pathway programs overview
Griffith sciences pathway programs overviewGriffith sciences pathway programs overview
Griffith sciences pathway programs overview
 
Griffith info tech brochure
Griffith info tech brochureGriffith info tech brochure
Griffith info tech brochure
 
Pm sql exercises
Pm sql exercisesPm sql exercises
Pm sql exercises
 
Repairs questions
Repairs questionsRepairs questions
Repairs questions
 
Movies questions
Movies questionsMovies questions
Movies questions
 
Australian birds questions
Australian birds questionsAustralian birds questions
Australian birds questions
 
Section b
Section bSection b
Section b
 
B
BB
B
 
A
AA
A
 
Section a
Section aSection a
Section a
 
Ask manual rev5
Ask manual rev5Ask manual rev5
Ask manual rev5
 
Case study report mj
Case study report mjCase study report mj
Case study report mj
 

Último

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Week06

  • 2. © 2004 Pearson Addison-Wesley. All rights reserved 7-2 Copyright Warning COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING This material has been copied and communicated to you by or on behalf of Bond University pursuant to Part VB of the Copyright Act 1968 (the Act). The material in this communication may be subject to copyright under the Act. Any further copying or communication of this material by you may be the subject of copyright protection under the Act. Do not remove this notice.
  • 3. © 2004 Pearson Addison-Wesley. All rights reserved 7-3 Arrays • Arrays are objects that help us organize large amounts of information • Chapter 7 focuses on:  array declaration and use  bounds checking and capacity  multidimensional arrays
  • 4. © 2004 Pearson Addison-Wesley. All rights reserved 7-4 Outline Declaring and Using Arrays Two-Dimensional Arrays
  • 5. © 2004 Pearson Addison-Wesley. All rights reserved 7-5 Arrays • An array is an ordered list of values 0 1 2 3 4 5 6 7 8 9 79 87 94 82 67 98 87 81 74 91 An array of size N is indexed from zero to N-1 scores The entire array has a single name Each value has a numeric index This array holds 10 values that are indexed from 0 to 9
  • 6. © 2004 Pearson Addison-Wesley. All rights reserved 7-6 Arrays • A particular value in an array is referenced using the array name followed by the index in brackets • For example, the expression scores[2] refers to the value 94 (the 3rd value in the array) • That expression represents a place to store a single integer and can be used wherever an integer variable can be used
  • 7. © 2004 Pearson Addison-Wesley. All rights reserved 7-7 Arrays • For example, an array element can be assigned a value, printed, or used in a calculation: scores[2] = 89; scores[first] = scores[first] + 2; mean = (scores[0] + scores[1])/2; System.out.println ("Top = " + scores[5]);
  • 8. © 2004 Pearson Addison-Wesley. All rights reserved 7-8 Arrays • The values held in an array are called array elements • An array stores multiple values of the same type – the element type • The element type can be a primitive type or an object reference • Therefore, we can create an array of integers, an array of characters, an array of Strings, etc. • In Java, the array itself is an object that must be instantiated
  • 9. © 2004 Pearson Addison-Wesley. All rights reserved 7-9 Arrays • Another way to depict the scores array: scores 79 87 94 82 67 98 87 81 74 91
  • 10. © 2004 Pearson Addison-Wesley. All rights reserved 7-10 Declaring Arrays • The scores array could be declared as follows: int[] scores = new int[10]; • The type of the variable scores is int[] (an array of integers) • Note that the array type does not specify its size, but each object of that type has a specific size • The reference variable scores is set to a new array object that can hold 10 integers
  • 11. © 2004 Pearson Addison-Wesley. All rights reserved 7-11 Declaring Arrays • Some other examples of array declarations: float[] prices = new float[500]; boolean[] flags; flags = new boolean[20]; char[] codes = new char[1750]; • NOTE! Array indexes are always ints, but the type of data that they store can be any valid Java type: float, char, boolean, String etc.
  • 12. © 2004 Pearson Addison-Wesley. All rights reserved 7-12 Using Arrays • Array elements can be accessed directly, to read and to write • We often want to process all elements in an array. To do this, we use a FOR loop across all valid index numbers, e.g. for (int index=0; index < scores.length; index++) System.out.println (scores[index]); • Note the range: start at index 0, go up to but not including the length of the array. • If int[] scores = new int[10], length is 10, so we loop from 0 up to 9. • See BasicArray.java (page 372)
  • 13. © 2004 Pearson Addison-Wesley. All rights reserved 7-13 Bounds Checking • Once an array is created, it has a fixed size • An index used in an array reference must specify a valid element • That is, the index value must be in range 0 to N-1 • The Java interpreter throws an ArrayIndexOutOfBoundsException if an array index is out of bounds • This is called automatic bounds checking
  • 14. © 2004 Pearson Addison-Wesley. All rights reserved 7-14 Bounds Checking • For example, if the array codes can hold 100 values, it can be indexed using only the numbers 0 to 99 • If the value of count is 100, then the following reference will cause an exception to be thrown: System.out.println (codes[count]); • It’s common to introduce off-by-one errors when using arrays for (int index=0; index <= 100; index++) codes[index] = index*50 + epsilon; problem
  • 15. © 2004 Pearson Addison-Wesley. All rights reserved 7-15 Bounds Checking • Each array object has a public constant called length that stores the size of the array • It is referenced using the array name: scores.length • Note that length holds the number of elements, not the largest index • See ReverseOrder.java (page 375) • See LetterCount.java (page 376)
  • 16. © 2004 Pearson Addison-Wesley. All rights reserved 7-16 Array Examples These examples come from Phil Stocks. We assume the following array: int [] a = new int [SIZE]; and SIZE is a declared constant // Count the number of positive elements // of the array int count = 0; for (int i = 0; i < a.length; i++) if (a[i] >= 0) count++; // Add up the elements in an array int sum = 0; for (int i = 0; i < a.length; i++) sum = sum + a[i]; // Count the number of even elements // of the array int count = 0; for (int i = 0; i < a.length; i++) if (a[i] % 2 == 0) count++;
  • 17. © 2004 Pearson Addison-Wesley. All rights reserved 7-17 Linear Search // Determine whether a value, x, is // in the array a boolean found = false; for (int i = 0; i < a.length; i++) if (a[i] == x) found = true; // Search for the position of an element, x, // in the array a boolean found = false; int i; for (i = 0; i < a.length && !found; i++) if (a[i] == x) found = true; // Search for the position of an element, x, // in the array a int pos = -1; for (int i = 0; i < a.length; i++) if (a[i] == x) pos = i;
  • 18. © 2004 Pearson Addison-Wesley. All rights reserved 7-18 Drawbacks of Arrays Arrays have certain limitations and disadvantages – Fixed size: • the size of the array must be declared before use • the size of the array cannot change • i.e., the array can fill up and overflow – Sequential order: • can’t have holes in array • i.e., to delete an element from the middle, you may need to shuffle all the elements from there to the end forward: // remove element at index x from array a: for (int i = x; i < a.length - 1; i++) a[i] = a[i+1];
  • 19. © 2004 Pearson Addison-Wesley. All rights reserved 7-19 Initializer Lists • An initializer list can be used to instantiate and fill an array in one step • The values are delimited by braces and separated by commas • Examples: int[] units = {147, 323, 89, 933, 540, 269, 97, 114, 298, 476}; char[] letterGrades = {'A', 'B', 'C', 'D', ’F'};
  • 20. © 2004 Pearson Addison-Wesley. All rights reserved 7-20 Initializer Lists • Note that when an initializer list is used:  the new operator is not used  no size value is specified • The size of the array is determined by the number of items in the initializer list • An initializer list can be used only in the array declaration • See Primes.java (page 381)
  • 21. © 2004 Pearson Addison-Wesley. All rights reserved 7-21 Arrays as Parameters • An entire array can be passed as a parameter to a method • Arrays are objects. We will explain this later, but this means.... • Changing an array element within the method changes the element in the original array! • In this sense, arrays are not copied into the method. This is call by reference.
  • 22. © 2004 Pearson Addison-Wesley. All rights reserved 7-22 Arrays of Strings • Keep in mind that String objects can be created using literals • The following declaration creates an array object called verbs and fills it with four String objects created using string literals String[] verbs = {"play", "work", "eat", "sleep"};
  • 23. © 2004 Pearson Addison-Wesley. All rights reserved 7-23 Command-Line Arguments • The signature of the main method indicates that it takes an array of String objects as a parameter • These values come from command-line arguments that are provided when the interpreter is invoked • For example, the following invocation of the interpreter passes three String objects into main: > java StateEval pennsylvania texas arizona • These strings are stored at indexes 0-2 of the array parameter of the main method • See NameTag.java (page 393)
  • 24. © 2004 Pearson Addison-Wesley. All rights reserved 7-24 Outline Declaring and Using Arrays Two-Dimensional Arrays
  • 25. © 2004 Pearson Addison-Wesley. All rights reserved 7-25 Two-Dimensional Arrays • A one-dimensional array stores a list of elements • A two-dimensional array can be thought of as a table of elements, with rows and columns one dimension two dimensions
  • 26. © 2004 Pearson Addison-Wesley. All rights reserved 7-26 Two-Dimensional Arrays • To be precise, in Java a two-dimensional array is an array of arrays • A two-dimensional array is declared by specifying the size of each dimension separately: int[][] scores = new int[12][50]; • A array element is referenced using two index values: value = scores[3][6] • The array stored in one row can be specified using one index
  • 27. © 2004 Pearson Addison-Wesley. All rights reserved 7-27 Two-Dimensional Arrays integerinttable[5][12] array of integersint[]table[5] 2D array of integers, or array of integer arrays int[][]table DescriptionTypeExpression • See TwoDArray.java (page 399) • See SodaSurvey.java (page 400)
  • 28. © 2004 Pearson Addison-Wesley. All rights reserved 7-28 Multidimensional Arrays • An array can have many dimensions – if it has more than one dimension, it is called a multidimensional array • Each dimension subdivides the previous one into the specified number of elements • Each dimension has its own length constant • Because each dimension is an array of array references, the arrays within one dimension can be of different lengths  these are sometimes called ragged arrays
  • 29. © 2004 Pearson Addison-Wesley. All rights reserved 7-29 Summary • Chapter 7 has focused on:  array declaration and use  bounds checking and capacity  multidimensional arrays