SlideShare a Scribd company logo
1 of 22
D.SEETHALAKSHMI
Assistant Professor
Department of Computer Applications
Bon Secours College for Women
Introduction
 Array: An ordered collection of values with two
distinguishing characters:
 Ordered and fixed length
 Homogeneous. Every value in the array must be of the same type
 The individual values in an array are called elements.
 The number of elements is called the length of the array
 Each element is identified by its position number in the
array, which is called index. In Java, the index numbers
begin with 0.
Array declaration
An array is characterized by
 Element type
 Length
type[ ] identifier = new type[length];
Default values in initialization
 numerics 0
 boolean false
 objects null
An array of objects
Elements of an array can be objects of any Java class.
Example: An array of 5 instances of the student class
Student[] topStudents = new Student[5];
Defining length
 Use named constant to declare the length of an array.
private static final in N_JUDGES = 5;
double[ ] scores = new double[N_JUDGES];
 Or read the length of an array from the user.
Selecting elements
Identifying an element
array[index]
 Index can be an expression
 Cycling through array elements
for (int i = 0; i < array.length; i++) {
operations involving the ith element
}
Human-readable index values
 From time to time, the fact that Java starts
index numbering at 0 can be confusing.
Sometimes, it makes sense to let the user work
with index numbers that begin with 1.
 Two standard ways:
1. Use Java’s index number internally and then add
one whenever those numbers are presented to the
user.
2. Use index values beginning at 1 and ignore the first
(0) element in each array. This strategy requires
allocating an additional element for each array but
has the advantage that the internal and external
index numbers correspond.
Internal representation of arrays
Student[] topStudents = new Student[2];
topStudents[0] = new Student(“Abcd”, 314159);
FFB8
FFBC
FFC0
1000
topStudents
stack
1000
1004
1008
100C
1010
length
topStudents[0]
topStudents[1]
2
null
null
heap
Student[] topStudents = new Student[2];
topStudents[0] = new Student(“Abcd”, 314159);
1000
1004
1008
100C
1010
1014
1018
101C
1020
1024
1028
102C
1030
1034
1038
103C
1040
4
A b
c d
1014
314159
0.0
false
2
1028
null
length
topStudents[0]
topStudents[1]
length
studentName
studentID
creditsEarned
paidUp
1000
topStudents FFB8
FFBC
FFC0
Passing arrays as parameters
 Recall: Passing objects (references) versus primitive
type (values) as parameters.
 Java defines all arrays as objects, implying that the
elements of an array are shared between the callee
and the caller.
swapElements(array[i], array[n – i – 1]) (wrong)
swapElements(array, i, n – i – 1)
private void swapElements(int[] array, int p1, int p2) {
int tmp = array[p1];
array[p1] = array[p2];
array[p2] = tmp;
}
 Every array in Java has a length field.
private void reverseArray(int[] array) {
for (int i = 0; i < array.length / 2; i++) {
swapElements(array, i, array.length – i – 1);
}
}
Using arrays
Example: Letter frequency table
 Design a data structure for the problem
Array: letterCounts[ ]
index: distance from ‘A’
index = Character.toUpperCase(ch) – ‘A’
letterCounts[0] is the count for ‘A’ or ‘a’
A convenient way of initializing an array:
int[ ] digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
private static final String[ ] US_CITIES_OVER_ONE_MILLION = {
“New York”,
“Los Angeles”,
“Chicago”,
“Huston”,
“Philadelphia”,
“Phoenix”,
“San Diego”,
“San Antonio”,
“Dallas”,
}
Arrays and graphics
 Arrays turn up frequently in graphical programming. Any
time that you have repeated collections of similar objects, an
array provides a convenient structure for storing them.
 As an aesthetically pleasing illustration of both the use of
arrays and the possibility of creating dynamic pictures using
nothing but straight lines the text presents YarnPattern
program, which simulates the following process:
 Place a set of pegs at regular intervals around a rectangular border
 Tie a piece of colored yarn around the peg in the upper left corner
 Loop that yarn around that peg a certain distance DELTA ahead
 Continuing moving forward DELTA pegs until you close the loop
Two-dimensional arrays
Each element of an array is an array (of the same
dimension)
int[][] A = new int[3][2]
An array of three arrays of dimension two
A[0][0] A[0][1]
A[1][0] A[1][1]
A[2][0] A[2][0]
3-by-2 matrix
Memory allocation (row orientation)
A[0][0]
A[0][1]
A[1][0]
A[1][1]
A[2][0]
A[2][1]
Initializing a two-dimensional array
Static int A[3][2] = {
{1, 4},
{2, 5},
{3, 6}
};
A 3-by-2 matrix
The ArrayList Class
 Although arrays are conceptually important as a data
structure, they are not used as much in Java as they are in
most other languages. The reason is that the java.util
package includes a class called ArrayList that provides the
standard array behavior along with other useful operations.
 ArrayList is a Java class rather than a special form in the
language. As a result, all operations on ArrayLists are
indicated using method calls. For example,
 You create a new ArrayList by calling the ArrayList constructor.
 You get the number of elements by calling the size method rather than
by selecting a length field.
 You use the get and set methods to select individual elements.
Methods in the ArrayList class
Figure 11-12, p. 443, where <T> is the base type.
boolean add(<T> element)
<T> remove(int index)
int indexOf(<T> value)
An ArrayList allows you to add new elements to the end of a list.
By contrast, you can’t change the size of an existing array
without allocating a new array and then copying all the
elements from the old array into the new one.
Linking objects
 Objects in Java can contain references to other objects. Such
objects are said to be linked. Linked structures are used quite
often in programming.
 An integer list:
public class IntegerList {
public IntegerList(int n, IntegerList link) {
value = n;
next = link;
}
/* Private instance variables */
private int value;
private IntegerList next;
}
Linked structures
 Java defines a special value called null to represent a
reference to a nonexistent value and can be assigned to any
variable that holds an object reference. Thus you can assign
null to the next field of the last element to signify the end
of the list.
 You can insert or remove an element from a list. The size of a
linked structure can change. Also, elements of a linked
structure can be objects.
 A simple example: SignalTower class, Figure 7-3, p. 242.
Arrays vs. linked lists
 The two attributes that define a data type are: domain and a
set of operations.
 An array is a collection of items of the same type. It is
efficient to select an element. The addresses of array[i] is
the address of array + sizeof(overhead) +
i*sizeof(type). For example, if the type is int, then
sizeof(int) is 4. Since the array size is fixed, it is hard to
insert or delete an element.
 The items on a list can have different types. Linked lists can
represent general structures such as tree. Items can be inserted
to or removed from a list. However, to select an element, you
have to follow the links starting from the first item on the list
(sequential access).

More Related Content

Similar to Arrays in JAVA.ppt (20)

Strings Arrays
Strings ArraysStrings Arrays
Strings Arrays
 
ARRAYS
ARRAYSARRAYS
ARRAYS
 
Arrays
ArraysArrays
Arrays
 
Module 7 : Arrays
Module 7 : ArraysModule 7 : Arrays
Module 7 : Arrays
 
Chapter 4 (Part I) - Array and Strings.pdf
Chapter 4 (Part I) - Array and Strings.pdfChapter 4 (Part I) - Array and Strings.pdf
Chapter 4 (Part I) - Array and Strings.pdf
 
Arrays
ArraysArrays
Arrays
 
array-191103180006.pdf
array-191103180006.pdfarray-191103180006.pdf
array-191103180006.pdf
 
Lecture 15 - Array
Lecture 15 - ArrayLecture 15 - Array
Lecture 15 - Array
 
Data Structure Midterm Lesson Arrays
Data Structure Midterm Lesson ArraysData Structure Midterm Lesson Arrays
Data Structure Midterm Lesson Arrays
 
Array Introduction One-dimensional array Multidimensional array
Array Introduction One-dimensional array Multidimensional arrayArray Introduction One-dimensional array Multidimensional array
Array Introduction One-dimensional array Multidimensional array
 
Ap Power Point Chpt6
Ap Power Point Chpt6Ap Power Point Chpt6
Ap Power Point Chpt6
 
Arrays
ArraysArrays
Arrays
 
unit1Intro_final.pptx
unit1Intro_final.pptxunit1Intro_final.pptx
unit1Intro_final.pptx
 
Introduction to Arrays in C
Introduction to Arrays in CIntroduction to Arrays in C
Introduction to Arrays in C
 
Algo>Arrays
Algo>ArraysAlgo>Arrays
Algo>Arrays
 
Chapter 13.pptx
Chapter 13.pptxChapter 13.pptx
Chapter 13.pptx
 
Unit ii data structure-converted
Unit  ii data structure-convertedUnit  ii data structure-converted
Unit ii data structure-converted
 
Arrays In C
Arrays In CArrays In C
Arrays In C
 
Class notes(week 4) on arrays and strings
Class notes(week 4) on arrays and stringsClass notes(week 4) on arrays and strings
Class notes(week 4) on arrays and strings
 
Arrays
ArraysArrays
Arrays
 

More from SeethaDinesh

Input Devices.pptx
Input Devices.pptxInput Devices.pptx
Input Devices.pptxSeethaDinesh
 
Generations of Computers.ppt
Generations of Computers.pptGenerations of Computers.ppt
Generations of Computers.pptSeethaDinesh
 
Inheritance in java.ppt
Inheritance in java.pptInheritance in java.ppt
Inheritance in java.pptSeethaDinesh
 
PROGRAMMING IN JAVA unit 1.pptx
PROGRAMMING IN JAVA unit 1.pptxPROGRAMMING IN JAVA unit 1.pptx
PROGRAMMING IN JAVA unit 1.pptxSeethaDinesh
 
Cloud Computing Basics.pptx
Cloud Computing Basics.pptxCloud Computing Basics.pptx
Cloud Computing Basics.pptxSeethaDinesh
 
unit 5 stack & queue.ppt
unit 5 stack & queue.pptunit 5 stack & queue.ppt
unit 5 stack & queue.pptSeethaDinesh
 
Greedy_Backtracking graph coloring.ppt
Greedy_Backtracking graph coloring.pptGreedy_Backtracking graph coloring.ppt
Greedy_Backtracking graph coloring.pptSeethaDinesh
 
Structure and Union.ppt
Structure and Union.pptStructure and Union.ppt
Structure and Union.pptSeethaDinesh
 
Shortest Path Problem.docx
Shortest Path Problem.docxShortest Path Problem.docx
Shortest Path Problem.docxSeethaDinesh
 
BINARY TREE REPRESENTATION.ppt
BINARY TREE REPRESENTATION.pptBINARY TREE REPRESENTATION.ppt
BINARY TREE REPRESENTATION.pptSeethaDinesh
 
NME WPI UNIt 3.pptx
NME WPI UNIt 3.pptxNME WPI UNIt 3.pptx
NME WPI UNIt 3.pptxSeethaDinesh
 
NME UNIT I & II MATERIAL.pdf
NME UNIT I & II MATERIAL.pdfNME UNIT I & II MATERIAL.pdf
NME UNIT I & II MATERIAL.pdfSeethaDinesh
 
graphtraversals.pdf
graphtraversals.pdfgraphtraversals.pdf
graphtraversals.pdfSeethaDinesh
 

More from SeethaDinesh (20)

Input Devices.pptx
Input Devices.pptxInput Devices.pptx
Input Devices.pptx
 
Generations of Computers.ppt
Generations of Computers.pptGenerations of Computers.ppt
Generations of Computers.ppt
 
Inheritance in java.ppt
Inheritance in java.pptInheritance in java.ppt
Inheritance in java.ppt
 
PROGRAMMING IN JAVA unit 1.pptx
PROGRAMMING IN JAVA unit 1.pptxPROGRAMMING IN JAVA unit 1.pptx
PROGRAMMING IN JAVA unit 1.pptx
 
Cloud Computing Basics.pptx
Cloud Computing Basics.pptxCloud Computing Basics.pptx
Cloud Computing Basics.pptx
 
unit 5 stack & queue.ppt
unit 5 stack & queue.pptunit 5 stack & queue.ppt
unit 5 stack & queue.ppt
 
Greedy_Backtracking graph coloring.ppt
Greedy_Backtracking graph coloring.pptGreedy_Backtracking graph coloring.ppt
Greedy_Backtracking graph coloring.ppt
 
Structure and Union.ppt
Structure and Union.pptStructure and Union.ppt
Structure and Union.ppt
 
Shortest Path Problem.docx
Shortest Path Problem.docxShortest Path Problem.docx
Shortest Path Problem.docx
 
BINARY TREE REPRESENTATION.ppt
BINARY TREE REPRESENTATION.pptBINARY TREE REPRESENTATION.ppt
BINARY TREE REPRESENTATION.ppt
 
NME UNIT II.ppt
NME UNIT II.pptNME UNIT II.ppt
NME UNIT II.ppt
 
DS UNIT 1.pdf
DS UNIT 1.pdfDS UNIT 1.pdf
DS UNIT 1.pdf
 
Basics of C.ppt
Basics of C.pptBasics of C.ppt
Basics of C.ppt
 
chapter 1.pptx
chapter 1.pptxchapter 1.pptx
chapter 1.pptx
 
DW unit 3.pptx
DW unit 3.pptxDW unit 3.pptx
DW unit 3.pptx
 
DW unit 2.pdf
DW unit 2.pdfDW unit 2.pdf
DW unit 2.pdf
 
DW Unit 1.pdf
DW Unit 1.pdfDW Unit 1.pdf
DW Unit 1.pdf
 
NME WPI UNIt 3.pptx
NME WPI UNIt 3.pptxNME WPI UNIt 3.pptx
NME WPI UNIt 3.pptx
 
NME UNIT I & II MATERIAL.pdf
NME UNIT I & II MATERIAL.pdfNME UNIT I & II MATERIAL.pdf
NME UNIT I & II MATERIAL.pdf
 
graphtraversals.pdf
graphtraversals.pdfgraphtraversals.pdf
graphtraversals.pdf
 

Recently uploaded

AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.arsicmarija21
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxsqpmdrvczh
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........LeaCamillePacle
 

Recently uploaded (20)

AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptx
 
Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........
 

Arrays in JAVA.ppt

  • 1. D.SEETHALAKSHMI Assistant Professor Department of Computer Applications Bon Secours College for Women
  • 2. Introduction  Array: An ordered collection of values with two distinguishing characters:  Ordered and fixed length  Homogeneous. Every value in the array must be of the same type  The individual values in an array are called elements.  The number of elements is called the length of the array  Each element is identified by its position number in the array, which is called index. In Java, the index numbers begin with 0.
  • 3. Array declaration An array is characterized by  Element type  Length type[ ] identifier = new type[length]; Default values in initialization  numerics 0  boolean false  objects null
  • 4. An array of objects Elements of an array can be objects of any Java class. Example: An array of 5 instances of the student class Student[] topStudents = new Student[5];
  • 5. Defining length  Use named constant to declare the length of an array. private static final in N_JUDGES = 5; double[ ] scores = new double[N_JUDGES];  Or read the length of an array from the user.
  • 6. Selecting elements Identifying an element array[index]  Index can be an expression  Cycling through array elements for (int i = 0; i < array.length; i++) { operations involving the ith element }
  • 7. Human-readable index values  From time to time, the fact that Java starts index numbering at 0 can be confusing. Sometimes, it makes sense to let the user work with index numbers that begin with 1.  Two standard ways: 1. Use Java’s index number internally and then add one whenever those numbers are presented to the user. 2. Use index values beginning at 1 and ignore the first (0) element in each array. This strategy requires allocating an additional element for each array but has the advantage that the internal and external index numbers correspond.
  • 8. Internal representation of arrays Student[] topStudents = new Student[2]; topStudents[0] = new Student(“Abcd”, 314159); FFB8 FFBC FFC0 1000 topStudents stack 1000 1004 1008 100C 1010 length topStudents[0] topStudents[1] 2 null null heap
  • 9. Student[] topStudents = new Student[2]; topStudents[0] = new Student(“Abcd”, 314159); 1000 1004 1008 100C 1010 1014 1018 101C 1020 1024 1028 102C 1030 1034 1038 103C 1040 4 A b c d 1014 314159 0.0 false 2 1028 null length topStudents[0] topStudents[1] length studentName studentID creditsEarned paidUp 1000 topStudents FFB8 FFBC FFC0
  • 10. Passing arrays as parameters  Recall: Passing objects (references) versus primitive type (values) as parameters.  Java defines all arrays as objects, implying that the elements of an array are shared between the callee and the caller. swapElements(array[i], array[n – i – 1]) (wrong) swapElements(array, i, n – i – 1)
  • 11. private void swapElements(int[] array, int p1, int p2) { int tmp = array[p1]; array[p1] = array[p2]; array[p2] = tmp; }  Every array in Java has a length field. private void reverseArray(int[] array) { for (int i = 0; i < array.length / 2; i++) { swapElements(array, i, array.length – i – 1); } }
  • 12. Using arrays Example: Letter frequency table  Design a data structure for the problem Array: letterCounts[ ] index: distance from ‘A’ index = Character.toUpperCase(ch) – ‘A’ letterCounts[0] is the count for ‘A’ or ‘a’
  • 13. A convenient way of initializing an array: int[ ] digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; private static final String[ ] US_CITIES_OVER_ONE_MILLION = { “New York”, “Los Angeles”, “Chicago”, “Huston”, “Philadelphia”, “Phoenix”, “San Diego”, “San Antonio”, “Dallas”, }
  • 14. Arrays and graphics  Arrays turn up frequently in graphical programming. Any time that you have repeated collections of similar objects, an array provides a convenient structure for storing them.  As an aesthetically pleasing illustration of both the use of arrays and the possibility of creating dynamic pictures using nothing but straight lines the text presents YarnPattern program, which simulates the following process:  Place a set of pegs at regular intervals around a rectangular border  Tie a piece of colored yarn around the peg in the upper left corner  Loop that yarn around that peg a certain distance DELTA ahead  Continuing moving forward DELTA pegs until you close the loop
  • 15. Two-dimensional arrays Each element of an array is an array (of the same dimension) int[][] A = new int[3][2] An array of three arrays of dimension two A[0][0] A[0][1] A[1][0] A[1][1] A[2][0] A[2][0] 3-by-2 matrix
  • 16. Memory allocation (row orientation) A[0][0] A[0][1] A[1][0] A[1][1] A[2][0] A[2][1]
  • 17. Initializing a two-dimensional array Static int A[3][2] = { {1, 4}, {2, 5}, {3, 6} }; A 3-by-2 matrix
  • 18. The ArrayList Class  Although arrays are conceptually important as a data structure, they are not used as much in Java as they are in most other languages. The reason is that the java.util package includes a class called ArrayList that provides the standard array behavior along with other useful operations.  ArrayList is a Java class rather than a special form in the language. As a result, all operations on ArrayLists are indicated using method calls. For example,  You create a new ArrayList by calling the ArrayList constructor.  You get the number of elements by calling the size method rather than by selecting a length field.  You use the get and set methods to select individual elements.
  • 19. Methods in the ArrayList class Figure 11-12, p. 443, where <T> is the base type. boolean add(<T> element) <T> remove(int index) int indexOf(<T> value) An ArrayList allows you to add new elements to the end of a list. By contrast, you can’t change the size of an existing array without allocating a new array and then copying all the elements from the old array into the new one.
  • 20. Linking objects  Objects in Java can contain references to other objects. Such objects are said to be linked. Linked structures are used quite often in programming.  An integer list: public class IntegerList { public IntegerList(int n, IntegerList link) { value = n; next = link; } /* Private instance variables */ private int value; private IntegerList next; }
  • 21. Linked structures  Java defines a special value called null to represent a reference to a nonexistent value and can be assigned to any variable that holds an object reference. Thus you can assign null to the next field of the last element to signify the end of the list.  You can insert or remove an element from a list. The size of a linked structure can change. Also, elements of a linked structure can be objects.  A simple example: SignalTower class, Figure 7-3, p. 242.
  • 22. Arrays vs. linked lists  The two attributes that define a data type are: domain and a set of operations.  An array is a collection of items of the same type. It is efficient to select an element. The addresses of array[i] is the address of array + sizeof(overhead) + i*sizeof(type). For example, if the type is int, then sizeof(int) is 4. Since the array size is fixed, it is hard to insert or delete an element.  The items on a list can have different types. Linked lists can represent general structures such as tree. Items can be inserted to or removed from a list. However, to select an element, you have to follow the links starting from the first item on the list (sequential access).