SlideShare a Scribd company logo
Chapter 11 Arrays
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 programming language slides (20)

Arrays in Java Programming Language slides
Arrays in Java Programming Language slidesArrays in Java Programming Language slides
Arrays in Java Programming Language slides
ssuser5d6130
 
Ppt chapter09
Ppt chapter09Ppt chapter09
Ppt chapter09
Richard Styner
 
Arrays in Java
Arrays in JavaArrays in Java
Arrays in Java
Naz Abdalla
 
Java session04
Java session04Java session04
Java session04
Niit Care
 
Eo gaddis java_chapter_07_5e
Eo gaddis java_chapter_07_5eEo gaddis java_chapter_07_5e
Eo gaddis java_chapter_07_5e
Gina Bullock
 
arraylist in java a comparison of the array and arraylist
arraylist in java a comparison of the array and arraylistarraylist in java a comparison of the array and arraylist
arraylist in java a comparison of the array and arraylist
PriyadharshiniG41
 
Core java day2
Core java day2Core java day2
Core java day2
Soham Sengupta
 
Introduction-to-Arrays-in-Java . Exploring array
Introduction-to-Arrays-in-Java . Exploring arrayIntroduction-to-Arrays-in-Java . Exploring array
Introduction-to-Arrays-in-Java . Exploring array
AbdulSamad264371
 
ch06.ppt
ch06.pptch06.ppt
ch06.ppt
AqeelAbbas94
 
ch06.ppt
ch06.pptch06.ppt
ch06.ppt
ansariparveen06
 
array Details
array Detailsarray Details
array Details
shivas379526
 
ch06.ppt
ch06.pptch06.ppt
ch06.ppt
chandrasekar529044
 
Arrays and Strings engineering education
Arrays and Strings engineering educationArrays and Strings engineering education
Arrays and Strings engineering education
csangani1
 
javaArrays.pptx
javaArrays.pptxjavaArrays.pptx
javaArrays.pptx
AshishNayyar11
 
Arrays Java
Arrays JavaArrays Java
Arrays Java
Jose Sumba
 
Java chapter 6 - Arrays -syntax and use
Java chapter 6 - Arrays -syntax and useJava chapter 6 - Arrays -syntax and use
Java chapter 6 - Arrays -syntax and use
Mukesh Tekwani
 
CH1 ARRAY (1).pptx
CH1 ARRAY (1).pptxCH1 ARRAY (1).pptx
CH1 ARRAY (1).pptx
AnkitaVerma776806
 
Array.ppt
Array.pptArray.ppt
Array.ppt
SbsOmit1
 
array.ppt
array.pptarray.ppt
array.ppt
rajput0302
 
Aj unit2 notesjavadatastructures
Aj unit2 notesjavadatastructuresAj unit2 notesjavadatastructures
Aj unit2 notesjavadatastructures
Arthik Daniel
 
Arrays in Java Programming Language slides
Arrays in Java Programming Language slidesArrays in Java Programming Language slides
Arrays in Java Programming Language slides
ssuser5d6130
 
Java session04
Java session04Java session04
Java session04
Niit Care
 
Eo gaddis java_chapter_07_5e
Eo gaddis java_chapter_07_5eEo gaddis java_chapter_07_5e
Eo gaddis java_chapter_07_5e
Gina Bullock
 
arraylist in java a comparison of the array and arraylist
arraylist in java a comparison of the array and arraylistarraylist in java a comparison of the array and arraylist
arraylist in java a comparison of the array and arraylist
PriyadharshiniG41
 
Introduction-to-Arrays-in-Java . Exploring array
Introduction-to-Arrays-in-Java . Exploring arrayIntroduction-to-Arrays-in-Java . Exploring array
Introduction-to-Arrays-in-Java . Exploring array
AbdulSamad264371
 
Arrays and Strings engineering education
Arrays and Strings engineering educationArrays and Strings engineering education
Arrays and Strings engineering education
csangani1
 
Java chapter 6 - Arrays -syntax and use
Java chapter 6 - Arrays -syntax and useJava chapter 6 - Arrays -syntax and use
Java chapter 6 - Arrays -syntax and use
Mukesh Tekwani
 
Aj unit2 notesjavadatastructures
Aj unit2 notesjavadatastructuresAj unit2 notesjavadatastructures
Aj unit2 notesjavadatastructures
Arthik Daniel
 

More from ssuser5d6130 (6)

packages in java programming language ppt
packages in java programming language pptpackages in java programming language ppt
packages in java programming language ppt
ssuser5d6130
 
Arrays in Java Programming Language slides
Arrays in Java Programming Language slidesArrays in Java Programming Language slides
Arrays in Java Programming Language slides
ssuser5d6130
 
Lecture_5_Method_overloading_Final.pptx in Java
Lecture_5_Method_overloading_Final.pptx in JavaLecture_5_Method_overloading_Final.pptx in Java
Lecture_5_Method_overloading_Final.pptx in Java
ssuser5d6130
 
Inner classes or nested classes in Java Program
Inner classes or nested classes in Java ProgramInner classes or nested classes in Java Program
Inner classes or nested classes in Java Program
ssuser5d6130
 
Control statements in Java Programming Language
Control statements in Java Programming LanguageControl statements in Java Programming Language
Control statements in Java Programming Language
ssuser5d6130
 
API-led.pptx
API-led.pptxAPI-led.pptx
API-led.pptx
ssuser5d6130
 
packages in java programming language ppt
packages in java programming language pptpackages in java programming language ppt
packages in java programming language ppt
ssuser5d6130
 
Arrays in Java Programming Language slides
Arrays in Java Programming Language slidesArrays in Java Programming Language slides
Arrays in Java Programming Language slides
ssuser5d6130
 
Lecture_5_Method_overloading_Final.pptx in Java
Lecture_5_Method_overloading_Final.pptx in JavaLecture_5_Method_overloading_Final.pptx in Java
Lecture_5_Method_overloading_Final.pptx in Java
ssuser5d6130
 
Inner classes or nested classes in Java Program
Inner classes or nested classes in Java ProgramInner classes or nested classes in Java Program
Inner classes or nested classes in Java Program
ssuser5d6130
 
Control statements in Java Programming Language
Control statements in Java Programming LanguageControl statements in Java Programming Language
Control statements in Java Programming Language
ssuser5d6130
 
Ad

Recently uploaded (20)

Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Basic English for Communication - Dr Hj Euis Eti Rohaeti MpdBasic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Restu Bias Primandhika
 
How to Create an Event in Odoo 18 - Odoo 18 Slides
How to Create an Event in Odoo 18 - Odoo 18 SlidesHow to Create an Event in Odoo 18 - Odoo 18 Slides
How to Create an Event in Odoo 18 - Odoo 18 Slides
Celine George
 
Respiratory System , Urinary System
Respiratory  System , Urinary SystemRespiratory  System , Urinary System
Respiratory System , Urinary System
RushiMandali
 
Capitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptxCapitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptx
CapitolTechU
 
How to Create a Rainbow Man Effect in Odoo 18
How to Create a Rainbow Man Effect in Odoo 18How to Create a Rainbow Man Effect in Odoo 18
How to Create a Rainbow Man Effect in Odoo 18
Celine George
 
LDMMIA Reiki Yoga Next Week Grad Updates
LDMMIA Reiki Yoga Next Week Grad UpdatesLDMMIA Reiki Yoga Next Week Grad Updates
LDMMIA Reiki Yoga Next Week Grad Updates
LDM & Mia eStudios
 
Exploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle SchoolExploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle School
Marie
 
EUPHORIA GENERAL QUIZ FINALS | QUIZ CLUB OF PSGCAS | 21 MARCH 2025
EUPHORIA GENERAL QUIZ FINALS | QUIZ CLUB OF PSGCAS | 21 MARCH 2025EUPHORIA GENERAL QUIZ FINALS | QUIZ CLUB OF PSGCAS | 21 MARCH 2025
EUPHORIA GENERAL QUIZ FINALS | QUIZ CLUB OF PSGCAS | 21 MARCH 2025
Quiz Club of PSG College of Arts & Science
 
Adam Grant: Transforming Work Culture Through Organizational Psychology
Adam Grant: Transforming Work Culture Through Organizational PsychologyAdam Grant: Transforming Work Culture Through Organizational Psychology
Adam Grant: Transforming Work Culture Through Organizational Psychology
Prachi Shah
 
How to Manage Maintenance Request in Odoo 18
How to Manage Maintenance Request in Odoo 18How to Manage Maintenance Request in Odoo 18
How to Manage Maintenance Request in Odoo 18
Celine George
 
BUSINESS QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 9 SEPTEMBER 2024
BUSINESS QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 9 SEPTEMBER 2024BUSINESS QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 9 SEPTEMBER 2024
BUSINESS QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 9 SEPTEMBER 2024
Quiz Club of PSG College of Arts & Science
 
How to Configure Vendor Management in Lunch App of Odoo 18
How to Configure Vendor Management in Lunch App of Odoo 18How to Configure Vendor Management in Lunch App of Odoo 18
How to Configure Vendor Management in Lunch App of Odoo 18
Celine George
 
Rose Cultivation Practices by Kushal Lamichhane.pdf
Rose Cultivation Practices by Kushal Lamichhane.pdfRose Cultivation Practices by Kushal Lamichhane.pdf
Rose Cultivation Practices by Kushal Lamichhane.pdf
kushallamichhame
 
LDMMIA Free Reiki Yoga S9 Grad Level Intuition II
LDMMIA Free Reiki Yoga S9 Grad Level Intuition IILDMMIA Free Reiki Yoga S9 Grad Level Intuition II
LDMMIA Free Reiki Yoga S9 Grad Level Intuition II
LDM & Mia eStudios
 
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptxDiptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Arshad Shaikh
 
Artificial intelligence Presented by JM.
Artificial intelligence Presented by JM.Artificial intelligence Presented by JM.
Artificial intelligence Presented by JM.
jmansha170
 
Different pricelists for different shops in odoo Point of Sale in Odoo 17
Different pricelists for different shops in odoo Point of Sale in Odoo 17Different pricelists for different shops in odoo Point of Sale in Odoo 17
Different pricelists for different shops in odoo Point of Sale in Odoo 17
Celine George
 
How to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 EmployeeHow to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 Employee
Celine George
 
Final Sketch Designs for poster production.pptx
Final Sketch Designs for poster production.pptxFinal Sketch Designs for poster production.pptx
Final Sketch Designs for poster production.pptx
bobby205207
 
Module 4 Presentation - Enhancing Competencies and Engagement Strategies in Y...
Module 4 Presentation - Enhancing Competencies and Engagement Strategies in Y...Module 4 Presentation - Enhancing Competencies and Engagement Strategies in Y...
Module 4 Presentation - Enhancing Competencies and Engagement Strategies in Y...
GeorgeDiamandis11
 
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Basic English for Communication - Dr Hj Euis Eti Rohaeti MpdBasic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Restu Bias Primandhika
 
How to Create an Event in Odoo 18 - Odoo 18 Slides
How to Create an Event in Odoo 18 - Odoo 18 SlidesHow to Create an Event in Odoo 18 - Odoo 18 Slides
How to Create an Event in Odoo 18 - Odoo 18 Slides
Celine George
 
Respiratory System , Urinary System
Respiratory  System , Urinary SystemRespiratory  System , Urinary System
Respiratory System , Urinary System
RushiMandali
 
Capitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptxCapitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptx
CapitolTechU
 
How to Create a Rainbow Man Effect in Odoo 18
How to Create a Rainbow Man Effect in Odoo 18How to Create a Rainbow Man Effect in Odoo 18
How to Create a Rainbow Man Effect in Odoo 18
Celine George
 
LDMMIA Reiki Yoga Next Week Grad Updates
LDMMIA Reiki Yoga Next Week Grad UpdatesLDMMIA Reiki Yoga Next Week Grad Updates
LDMMIA Reiki Yoga Next Week Grad Updates
LDM & Mia eStudios
 
Exploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle SchoolExploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle School
Marie
 
Adam Grant: Transforming Work Culture Through Organizational Psychology
Adam Grant: Transforming Work Culture Through Organizational PsychologyAdam Grant: Transforming Work Culture Through Organizational Psychology
Adam Grant: Transforming Work Culture Through Organizational Psychology
Prachi Shah
 
How to Manage Maintenance Request in Odoo 18
How to Manage Maintenance Request in Odoo 18How to Manage Maintenance Request in Odoo 18
How to Manage Maintenance Request in Odoo 18
Celine George
 
How to Configure Vendor Management in Lunch App of Odoo 18
How to Configure Vendor Management in Lunch App of Odoo 18How to Configure Vendor Management in Lunch App of Odoo 18
How to Configure Vendor Management in Lunch App of Odoo 18
Celine George
 
Rose Cultivation Practices by Kushal Lamichhane.pdf
Rose Cultivation Practices by Kushal Lamichhane.pdfRose Cultivation Practices by Kushal Lamichhane.pdf
Rose Cultivation Practices by Kushal Lamichhane.pdf
kushallamichhame
 
LDMMIA Free Reiki Yoga S9 Grad Level Intuition II
LDMMIA Free Reiki Yoga S9 Grad Level Intuition IILDMMIA Free Reiki Yoga S9 Grad Level Intuition II
LDMMIA Free Reiki Yoga S9 Grad Level Intuition II
LDM & Mia eStudios
 
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptxDiptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Arshad Shaikh
 
Artificial intelligence Presented by JM.
Artificial intelligence Presented by JM.Artificial intelligence Presented by JM.
Artificial intelligence Presented by JM.
jmansha170
 
Different pricelists for different shops in odoo Point of Sale in Odoo 17
Different pricelists for different shops in odoo Point of Sale in Odoo 17Different pricelists for different shops in odoo Point of Sale in Odoo 17
Different pricelists for different shops in odoo Point of Sale in Odoo 17
Celine George
 
How to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 EmployeeHow to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 Employee
Celine George
 
Final Sketch Designs for poster production.pptx
Final Sketch Designs for poster production.pptxFinal Sketch Designs for poster production.pptx
Final Sketch Designs for poster production.pptx
bobby205207
 
Module 4 Presentation - Enhancing Competencies and Engagement Strategies in Y...
Module 4 Presentation - Enhancing Competencies and Engagement Strategies in Y...Module 4 Presentation - Enhancing Competencies and Engagement Strategies in Y...
Module 4 Presentation - Enhancing Competencies and Engagement Strategies in Y...
GeorgeDiamandis11
 
Ad

Arrays in java programming language slides

  • 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).