0% found this document useful (0 votes)
8 views

Week 04 - Array of Object

Uploaded by

tinashii-
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Week 04 - Array of Object

Uploaded by

tinashii-
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

Arrays of Objects

• In Java, in addition to create arrays of


primitive data types (int, double,
float, char etc), we can declare arrays
of objects
• An array of primitive data is a powerful tool,
but an array of objects is even more powerful.
• The use of an array of objects allows us to
model the application more cleanly and
logically.
Declaring an Object Array
Code AA Person[ ] persons;
Only
Onlythe
thename
nameperson
personisis
persons = new Person[20];
declared,
declared,no
noarray
arrayisis
persons[0] = new Person( ); allocated
allocatedyet.
yet.

persons

State
of
Memory
After AA is executed
Creating an Object Array
Person [ ] persons = new Person[20];
Code Person[ ] persons; Now
Nowthe
thearray
arrayfor
forstoring
storing20
20
Person objects is created,
Person objects is created,
BB persons = new Person[20]; but
butthe
thePerson
Personobjects
objects
themselves
themselves are notyet
are not yet
persons[0] = new Person( );
created.
created.

person
persons

0 1 2 3 4 16 17 18 19

State
of
Memory
After BB is executed
Creating an Object Array
Code Person[ ] persons;
One
OnePerson
Personobject
objectisiscreated
created
persons = new Person[20]; and the reference to this
and the reference to this
object
objectisisplaced
placedininposition
position0.0.
CC persons[0] = new Person( );

person

0 1 2 3 4 16 17 18 19

State
of Person

Memory
After CC is executed
Creating an Object Array
Code 20
for(int i=0;i<persons.length;i++) 20Person
Personobjects
objectsareare
D
D persons[i] = new Person( );
created
to
and the reference
created and the reference
tothese
theseobjects
objectsare
areplaced
placed
ininposition 0 to 19.
position 0 to 19.

person After D
D is executed
0 1 2 3 4 16 17 18 19

State
of
Person

Person

Person

Person
Person

Person

Person

Person

Person
Memory
Array of Object - Sample
public class Rectangle
{
private int length,width,area;

public Rectangle (int l, int w){


length = l;
width = w;
}

public void calculateArea() {


area = length * width;
}

public int getArea() {


return area;
}

} // end class
Array of Object- Sample
import java.util.*;
public class TestRectangle{
public static void main (String []args)
{
static Scanner console = new Scanner(System.in);
Rectangle rect[]=new Rectangle[2];
for (int j=0;j<rect.length;j++){
System.out.print("Length : ");
int length = console.nextInt();
System.out.print("Width: ");
int width = console.nextInt();
rect[j]=new Rectangle(length,width);
rect[j].calculateArea();
System.out.println("Area of Rectangle " + (j+1) + " = " +
rect[j].getArea());
System.out.println();
}
}
}//end class
Array of Object- Sample
import java.io.*;

class Person
{
private String name;
private int age;
private char gender;

public Person(String newName, int newAge, char newGender){


name = newName;
age = newAge;
gender = newGender;
}
Array of Object- Sample

public String getName(){


return name;
}

public int getAge()


{
return age;
}

public char getGender()


{
return gender;
}
}
Array of Object- Sample
class PersonList{
private Person [] person;
private int counter;

public PersonList(int size){


person = new Person[size];
counter = 0;
}
public void addRecord(Person pers) {
person[counter] = pers
counter++;
}

public void displayRecord(){


for (int i= 0; i< counter; i++){
System.out.println("\nName ="+person[i].getName());
System.out.println("Age = "+person[i].getAge());
System.out.println("Gender = "+person[i].getGender());
}
}

} // end PersonList
Array of Object- Sample
import java.util.*;
public class TestPerson {
public static void main(String[] arg){
Scanner read = new Scanner(System.in);
String name=null; Person human;
int age;
char gender;
System.out.println("Enter number of person: ");
int num = read.nextInt();
PersonList people = new PersonList(num);
System.out.println("\n");
for (int i= 0; i< num; i++) {
System.out.print("\nEnter name = ");
name = read.next();
System.out.print("Enter age = ");
age = read.nextInt();
System.out.print("Enter gender = ");
gender = read.nextLine().charAt(0);
human = new Person(name, age, gender)
people.addRecord(human);
}
people.displayRecord();
}
} // end TestPerson
Array of Object- Sample
Output:
Enter number of person: 2

Enter name = MuthuSamy a/l Acaphan


Enter age = 23
Enter gender = male

Enter name = Siti Sarah binti Zakaria


Enter age = 19
Enter gender = female

Name = MuthuSamy a/l Acaphan


Age = 23
Gender =m

Name = Siti Sarah binti Zakaria


Age = 19
Gender =f
Process Exit...
Array of Object- Sample
• Find the youngest and oldest persons.
int minIdx = 0; //index to the youngest person
int maxIdx = 0; //index to the oldest person

for (int i = 1; i < person.length; i++) {

if ( person[i].getAge() < person[minIdx].getAge() ) {


minIdx = i; //found a younger person

} else if (person[i].getAge() > person[maxIdx].getAge() ) {

maxIdx = i; //found an older person


}
}

//person[minIdx] is the youngest and person[maxIdx] is the oldest


Array of Object- Sample
Object Deletion – Approach 1

Delete
DeletePerson
PersonBBbybysetting
setting
AA int delIdx = 1; the
the reference in position11toto
reference in position
person[delIdx] = null; null.
null.

person person

0 1 2 3 0 1 2 3

AA BB CC DD AA CC DD

Before AA is executed After AA is executed


Array of Object- Sample
Object Deletion – Approach 2

AA int delIdx = 1, last = 3; Delete


DeletePerson
PersonBBbybysetting
setting
person[delIndex] = person[last]; the
the reference in position11toto
reference in position
the
thelast
lastperson.
person.
person[last] = null;

person person

0 1 2 3 0 1 2 3

AA BB CC DD AA DD CC

Before AA is executed After AA is executed


Array of Object- Sample
• Searching for a particular person. Approach 2 Deletion is used.

int i = 0;

while ( person[i] != null && !person[i].getName().equals("Latte") ) {


i++;
}

if ( person[i] == null ) {
//not found - unsuccessful search
System.out.println("Ms. Latte was not in the array");

} else {
//found - successful search
System.out.println("Found Ms. Latte at position " + i);
}
Array of Object- Sample
Object Deletion – Approach 1

Delete
DeletePerson
PersonBBbybysetting
AA int delIdx = 1; the
setting
the reference in position11toto
reference in position
person[delIdx] = null; null.
null.

person person

0 1 2 3 0 1 2 3

AA BB CC DD AA CC DD

Before AA is executed After AA is executed


Array of Object- Sample
Object Deletion – Approach 2

AA int delIdx = 1, last = 3; Delete


DeletePerson
PersonBBbybysetting
setting
person[delIndex] = person[last]; the
the reference in position11toto
reference in position
the
thelast
lastperson.
person.
person[last] = null;

person person

0 1 2 3 0 1 2 3

AA BB CC DD AA DD CC

Before AA is executed After AA is executed

You might also like